TcpListener listener = new TcpListener(IPAddress.Parse("192.168.1.1"), 8010);
listener.Start();
TcpClient client = listener.AcceptTcpClient();
NetworkStream ns = client.GetStream();
StringBuilder acceptNS = new StringBuilder();
byte[] b = new byte[1024];
int i = 0;
if (ns.CanRead)
{
do
{
i = ns.Read(b, 0, b.Length);
acceptNS.Append(Encoding.GetEncoding("GBK").GetString(b, 0, i).Trim());
}
while (ns.DataAvailable);
}
每次读取1024个字节
如果传过来的字符串中 1023位是字母"a"接着是"中文"
//那么读出来最后一位就是乱码问号“?”
i = ns.Read(b, 0, b.Length);
现在我解决的办法是
1. 设置byte[] b 非常大 一次读完
2.遇到最后一个字符是乱码就多读一个单位
还有什么好的或者比较直接的方法么。