c#中Socket问题,请各位进来帮帮我

ssjywhr 2009-04-17 01:15:02
服务器端代码:IPAddress ip = IPAddress.Parse("192.168.0.106");
IPEndPoint iep = new IPEndPoint(ip, 206);
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Bind(iep);
socket.Listen(12);
Socket clientSocket = socket.Accept();
string message = "你好,C#!";
byte[] sendbytes = System.Text.Encoding.UTF8.GetBytes(message);
int successSendBytes = clientSocket.Send(sendbytes, sendbytes.Length, SocketFlags.None);


客户端代码:IPAddress ip = IPAddress.Parse("192.168.0.106");
IPEndPoint iep = new IPEndPoint(ip, 206);
Socket serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
serverSocket.Connect(iep);
byte[] receivebytes = new byte[1024];
int successReceiveByte = serverSocket.Receive(receivebytes);
string m1 = System.Text.Encoding.GetEncoding("GB2312").GetBytes(successReceiveByte);
label1.Text = m1;
现在我要把服务器端的“你好,C#!”发送到客户端,可是在客户端收到的却是一个整数,请问要怎么转回来?要怎么实现这个功能?
...全文
112 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
LaoBai_2006 2009-04-17
  • 打赏
  • 举报
回复
呃……别的姑且不说,编码和解码应该使用相同的格式吧……
然后,回到这个问题,被解码的不应该是 successReceiveByte 吧,receivebytes 才是保存接收到内容的字节数组吧……
深海之蓝 2009-04-17
  • 打赏
  • 举报
回复
两边的编码格式不一样,把客户端的System.Text.Encoding.GetEncoding
换成 System.Text.Encoding.UTF8.GetBytes
walkghost 2009-04-17
  • 打赏
  • 举报
回复
receivebytes 就是你接收到的信息的字节数组,把它进行UTF-8编码转换后输出即可。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧