CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

关于服务端向客户端发信息问题(汉字变成乱码)

楼主boyandgirl111(极速2005)2005-04-01 19:30:26 在 .NET技术 / C# 提问

下面事例,提问如题.下面是服务端.  
  using   System;  
  using   System.Net;  
  using   System.Net.Sockets;  
  using   System.Text;  
  using   System.IO;  
  public   class   TcpTimeClient  
  {  
  private   const   int   portNum   =   80;//设为80是为了能穿过防火墙.  
   
    private   const   string   hostName   ="28.72.197.52";//  
    //   这是客户端的IP.也就是要接收信息的主机.服务器要知道它,才能让客户端收到.  
   
  public   static   int   Main(String[]   args)  
  {  
  try  
  {  
            TcpClient   client   =   new   TcpClient(hostName,portNum);  
  NetworkStream   ns   =   client.GetStream();  
    /////////////////////////////////////////////////////////////////////  
    ///如果去掉这部分将被写入文件的文本.而用人工输入汉字到1.txt    
    ///则在客户端不会出现乱码.估计就是此处惹的祸  
                    string   path   =   @"c:\1.txt";  
   
  //   Delete   the   file   if   it   exists.  
  if   (!File.Exists(path))    
  {  
  //   Create   the   file.  
  using   (FileStream   fs1   =   File.Create(path))   {}  
  }  
   
  //   Open   the   stream   for   writing.  
  using   (FileStream   fs1   =   File.OpenWrite(path))    
  {  
   
                                                                        Byte[]   info   =     new   UTF8Encoding(true).GetBytes(  
                                        "This   is   to   test   the   OpenWrite   method.中华人民共和国");  
   
  //   Add   some   information   to   the   file.  
  fs1.Write(info,   0,   info.Length);  
  }  
  /////////////////如果去掉上面这些行,则OK   ,如果?//////////  
  ///请指教   ,想用它来发信息,所以不想去掉上面几行,信息不都是存在文件中的.///////////  
   
  ////////////////////从文件读取到网络流,以备传送//////////////////////  
          FileStream   fs     =       File.Open       ("C:\\1.txt",FileMode.Open,System.IO.FileAccess.ReadWrite);  
  int   data   =   fs.ReadByte();  
  Console.WriteLine("jfjdkfj");  
      while(data!=-1)  
  {    
            ns.WriteByte((byte)data);  
        data   =   fs.ReadByte();  
  }    
  Console.WriteLine("网络流发送成功");  
     
  client.Close();  
  }  
  catch(Exception   e)  
  {  
  Console.WriteLine(e.ToString());  
  }  
  return   0;  
  }  
  }  
  ////////////////////////////////////////  
  ///服务端往客户端发信息.但事先.客户端要找开才收得到.且客户端不能在远方的局域网内.  
  ////////////////////////////////////////////////////////////////  
  /////////////////////////////////////////////////////////////  
  ///////////为了能让您更方便地调试,我把客户端也抄下来了///////  
  ////////////但我估计下面没错///////////////////////////////  
     
  using   System;  
  using   System.Net.Sockets;  
  using   System.Text;  
  using   System.IO;  
  public   class   TcpTimeServer  
  {  
  private   const   int   portNum   =   80;  
  public   static   int   Main(String[]args)  
  {  
  bool   done   =   false;  
  TcpListener   listener   =   new   TcpListener(portNum);  
  listener.Start();  
  while(!done)  
  {  
  Console.Write("等待连接...");  
  TcpClient   client   =   listener.AcceptTcpClient();  
  Console.WriteLine("接到连接");  
  NetworkStream   ns   =   client.GetStream();  
    try  
  {  
    StreamReader   sr   =   new   StreamReader(ns,System.Text.Encoding.Default);  
  string   result     =   sr.ReadToEnd();  
  Console.WriteLine(result);  
    ns.Close();  
  client.Close();  
  }  
  catch(Exception   e)  
  {  
  Console.WriteLine(e.ToString());  
  }  
  }  
  listener.Stop();  
  return   0;  
  }  
  }  
  /////////////////////////////////////////////////////////////  
  ///////////////好郁闷啊,只想发送消息都这么困难吗/////////////  
  ////////////////////////////////////////////////////////////  
  ////////非常感谢你有这么强的助人为乐精神,读完了此程序///////  
  ////////非常感谢你有这么强的助人为乐精神,读完了此程序///////  
  ///////////////盼您的回复///////////////////////////////////  
  ///////////////盼您的回复/////////////////////////////////// 问题点数:20、回复次数:5Top

1 楼seelancer(郁闷枪骑兵)回复于 2005-04-01 19:54:58 得分 2

编码问题吧??  
  Encoding.UTF8Top

2 楼zzhgb(柏油)回复于 2005-04-01 20:16:54 得分 0

用序列化做就没问题(BinaryStream)  
  Top

3 楼zzhgb(柏油)回复于 2005-04-01 20:20:40 得分 0

补一句,要代码的话,可以加QQ群:1925543,我下次把它传到共享里边,别忘了给我加分哦,我的分快用完了    
  Top

4 楼zzhgb(柏油)回复于 2005-04-01 21:08:59 得分 15

SERVER:           TcpListener   listener=new   TcpListener(5000);  
                          connection=listener.AcceptSocket();  
                          socketStream=new   NetworkStream(connection);  
                          BinaryWriter   writer=new   BinaryWriter(socketStream);  
                          BinaryReader   reader=new   BinaryReader(socketStream);  
                          writer.Write("发送的内容");  
                          接收的字符=reader.ReadString();  
   
  CLIENT:           TcpListener   client=new   TcpClient();  
                          client.Connect("192.168.0.13",5000);     //主机地址和端口  
                          connection=listener.AcceptSocket();  
                          socketStream=client.GetStream();  
                          BinaryWriter   writer=new   BinaryWriter(socketStream);  
                          BinaryReader   reader=new   BinaryReader(socketStream);  
                          writer.Write("发送的内容");  
                          接收的字符=reader.ReadString();Top

5 楼lucbesson(女娃哈哈)回复于 2005-04-01 21:15:33 得分 3

server:  
  byte[]   bytes   =Encoding.Unicode.GetBytes(datagram);  
  client:  
  string   returnData=Encoding.Unicode.GetString(receiveBytes,0,receiveBytes.Length);Top

相关问题

  • 在linux下用apache做web服务器访问时汉字变成乱码
  • 服务器端控件的汉字都成了乱码。如何治??
  • 汉字乱码问题,急!!!
  • Cookie 汉字乱码问题
  • Ajax中文问题,客户端向服务器提交有中文的参数的连接时候,出现乱码,回答对,马上结贴!
  • RichEditCtrl 中输入汉字出现乱码 ?
  • 显示汉字乱码问题?
  • 使用visiBroker,汉字变乱码。
  • 为何汉字会变成乱码??
  • java汉字显示乱码问题??

关键词

  • .net
  • 客户
  • client
  • 文件
  • 信息
  • socketstream
  • 客户端
  • binaryreader
  • binarywriter
  • 服务

得分解答快速导航

  • 帖主:boyandgirl111
  • seelancer
  • zzhgb
  • lucbesson

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo