大家好,我现在在做使用Socket TCP做聊天工具,但是遇到一个问题,缓冲区在第一次读取时正常,第二次读取的时候会超时,不知道原因在哪里,麻烦做过此类项目的朋友帮忙解答,谢谢!
代码如下:byte[] buff = new byte[8192];
string msg;
int len;
try
{
if (!nsStream.CanRead)
{
return;
}
StopFlag = false;
while (!StopFlag)
{ //从流中得到数据,并存入到buff字符数组中
len = nsStream.Read(buff, 0, buff.Length); //第一次数据过来读取正常,后面再次读取就直接超时,不知道为什么会这样
if (len < 1)
{
Thread.Sleep(200);
continue;
}
//将字符数组转化为字符串
msg = System.Text.Encoding.Default.GetString(buff, 0, len);
msg.Trim();
}
代码如下:byte[] buff = new byte[8192];
string msg;
int len;
try
{
if (!nsStream.CanRead)
{
return;
}
StopFlag = false;
while (!StopFlag)
{ //从流中得到数据,并存入到buff字符数组中
len = nsStream.Read(buff, 0, buff.Length); //第一次数据过来读取正常,后面再次读取就直接超时,不知道为什么会这样
if (len < 1)
{
Thread.Sleep(200);
continue;
}
//将字符数组转化为字符串
msg = System.Text.Encoding.Default.GetString(buff, 0, len);
msg.Trim();
}
我设置了NetworkStream.ReadTimeOut = 10000