CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

用tcpclient类发送中文字符接收时变成乱码,请问该怎么设置?

楼主likaiabc()2005-09-03 19:34:56 在 .NET技术 / C# 提问

如题  
   
  client端  
   
  byte[]   data   =   new   byte[   1024   ];  
  TcpClient   server;  
   
  try  
  {  
  IPEndPoint   ipep   =   new   IPEndPoint(   IPAddress.Parse(   "10.87.45.183"   ),   8080   );  
  server   =   new   TcpClient();  
  server.Connect(   "10.87.45.183",   8888   );  
  }  
  catch(   SocketException   exp   )  
  {  
  Console.WriteLine(   "服务器连接错误!"   +   exp.Message   );  
  Console.ReadLine();  
  return;  
  }  
   
  NetworkStream   ns   =   server.GetStream();  
   
  int   recv   =   ns.Read(   data,   0,   data.Length   );  
  string   StringData   =   Encoding.ASCII.GetString(   data,   0,   recv   );  
   
  Console.WriteLine(   StringData   );  
   
  data     =   Encoding.ASCII.GetBytes(   "Client   Data   OK客户!"   );  
   
  ns.Write(   data,   0,   data.Length     );  
   
  ns.Close();  
  server.Close();  
   
  Console.WriteLine(   "exit..."   );  
  Console.ReadLine();  
   
  server端  
   
  byte[]   data   =   new   byte[   1024   ];  
   
  TcpListener   newSock   =   new   TcpListener(   8888   );  
   
  newSock.Start();  
   
  Console.WriteLine(   "等待一个客户端连接。。。"   );  
   
  TcpClient   client   =   newSock.AcceptTcpClient();  
   
  NetworkStream   ns   =   client.GetStream();  
   
  data   =   Encoding.ASCII.GetBytes(   "welcome   TcpListener   Server!"   );  
   
  ns.Write(   data,   0,   data.Length   );  
   
  int   recv   =   ns.Read(   data,   0,   data.Length   );    
   
  string   StringData   =   Encoding.ASCII.GetString(   data,   0,   recv   );  
   
  Console.WriteLine(   "客户端发送的信息为:"   +   StringData   );  
   
  Console.ReadLine();  
   
  ns.Close();  
   
  client.Close();  
   
  newSock.Stop(); 问题点数:20、回复次数:2Top

1 楼lumj(真奇怪)回复于 2005-09-03 20:13:13 得分 10

你的编码选择错误,把所有的   Encoding.ASCII改成   Encoding.Default或者Encoding.Utf8或者Encoding.Unicode,随便什么都成,只要不是ASCIITop

2 楼fanbl(快乐人)回复于 2005-09-04 10:14:30 得分 10

把Encoding.ASCII改成Encoding.Default,我前几天也遇到这个问题。Top

相关问题

  • 接收字符
  • c#写的webservice,接收到的中文字符串全部变成乱码是怎么回事? 要怎么改?
  • 字符乱码问题?
  • 字符乱码问题!(急)
  • 各位大爷,为什么我用winsock发送字符串,发出和接收到的长度比我的字符串长,多出来的是乱码??
  • VB中用HTTP请求数据,如果返回字符串中有中文,客户端接收到的就是乱码,如何解码?
  • sql_server乱码(修改字符集)
  • oracle字符集乱码,在线给分!!!!!!!!!
  • ie中copy字符串乱码问题!
  • Bean中的字符串变量乱码!

关键词

  • client
  • server
  • tcpclient
  • newsock
  • ns
  • console
  • writeline
  • byte
  • data

得分解答快速导航

  • 帖主:likaiabc
  • lumj
  • fanbl

相关链接

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

广告也精彩

反馈

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