socket
int port = 8007;
             string host = "192.168.9.63";
             IPAddress ip = IPAddress.Parse(host);
             IPEndPoint ipe = new IPEndPoint(ip, port);//把ip和端口转化为IPEndPoint实例
             Socket c = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);//创建一个Socket
             Console.WriteLine("Conneting...");
             c.Connect(ipe);//连接到服务器
             string sendStr = "1111111111111111111111111111111111111111111111111111";              
             Encoding gb2312 = Encoding.GetEncoding("gb2312");
             byte[] sendStrbytes = gb2312.GetBytes(sendStr);
             string StrLen = sendStrbytes.Length.ToString();
             byte[] sendStrlen = gb2312.GetBytes(StrLen);
             c.Send(sendStrlen, sendStrlen.Length, 0);//发送测试信息             
             Console.WriteLine("SendMessage");
             c.Send(sendStrbytes, sendStrbytes.Length, 0);//发送测试信息
             byte [] recievelen=new byte [32];             
             c.Receive(recievelen);
//              
             string lenth = System.Text.Encoding.Default.GetString(recievelen);
             MessageBox.Show(lenth);
             //byte[] recievedata = new byte[Convert.ToInt32(lenth)];
             byte[] recievedata = new byte[87];
             c.Receive(recievedata);                           
             string rec = gb2312.GetString(recievedata);
             MessageBox.Show(rec);
服务器只将接受到的数据转出给PC机,但PC接收数据时总是多一点多了一堆乱码:如前台发送
中TRCD1111112中2中2中2中2中国11dddd1111111111111111111111111111111111111111111111111111
则返回的数据为:
◥<\t镴\0\0\0\0\0谼=\t87\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0纔<\t8篚穃瀀\0(y<\t镴
中TRCD1111112中2中2中2中2中国11dddd1111111111111111111111111111111111111111111111111111\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\
搞不清
------解决方案--------------------通讯没问题 字符集的问题
------解决方案--------------------string lenth = System.Text.Encoding.Default.GetString(recievelen);
这个问题..
你发送的时候用了gb2312 接收的时候使用了ANSI自然出乱码
------解决方案--------------------那就可能是接收时溢出了
你可以接收是限定下长度  或者通过循环来分段接受
------解决方案--------------------用utf8或者default试一下
------解决方案--------------------arrau.clear(buffer);
------解决方案--------------------
------解决方案--------------------内存变量没有清零,或者内存指针位置不正确。