猿问

如下程序异常,求解决

static void SigleProThread()
{
Console.WriteLine("线程开始");
byte[] receiveByte = new byte[1024];
string connip = "连接来自:[" + mysocket.RemoteEndPoint.ToString() + "]";
tempcontentip = connip;
CFG.mylog.Log(connip);
while (true)
{
if (mysocket.Connected)
{
try
{
Array.Clear(receiveByte, 0, receiveByte.Length);
int recvlen = mysocket.Receive(receiveByte, receiveByte.Length, 0);
byte[] content = receiveByte.Take(recvlen).ToArray();

string result = Encoding.UTF8.GetString(content);
if (result.Length == 0)
{
if (mysocket != null)
{
mysocket.Close();
mysocket = null;
}
Console.WriteLine("连接已断开");
CFG.mylog.Log("连接已断开1");
break;
}
else
{
CFG.mylog.Log("recv=" + result);
temprecvstr = result;
proData(result);
}
}
catch (Exception ex)
{
//远程主机强迫关闭了一个现有的连接
if (mysocket != null)
{
mysocket.Close();
mysocket = null;
CFG.mylog.Log("mysocket已经设为null");
}

Console.WriteLine("异常:" + ex.Message);
CFG.mylog.Log("异常:" + ex.Message);

break;
}
}
else
{
if (mysocket != null)
{
mysocket.Close();
mysocket = null;
}
Console.WriteLine("连接已断开");
CFG.mylog.Log("连接已断开2");
break;
}
}
}

跃然一笑
浏览 144回答 1
1回答

米琪卡哇伊

Index and length ...索引或者长度(参数)必须引用字符串中的一个位置可能是你调用了一些函数,比如mid , left , instr,right ...然后参数不在字符串的长度范围内不过也只能是猜测
随时随地看视频慕课网APP
我要回答