关于Socket,高手求助啊~~
大眼睛 2012-10-19 10:43:03 我现在已经建立好连接了,有监听watchSocket和连接connSocket。我现在想点击button2发送给连接的设备一段数字,这个连接设备会自动回数。可是在点击发送数据按钮之后会报这个错“您的主机中的软件放弃了一个已建立的连接。”不知道是什么问题,请高手赐教啊~~~
点击按钮的事件为:
private void button2_Click(object sender, EventArgs e)
{
byte[] sendData = System.Text.Encoding.Default.GetBytes(txtsend.Text);
ConnSocket.Send(sendData);
Thread connthread = new Thread(GetMsg);
connthread.IsBackground = true;
connthread.Start(ConnSocket);
}
public void GetMsg(object socket)
{
Socket connSocket = (Socket)socket;
while (true)
{
byte[] arrData = new byte[1024 * 1024 * 4];
int length = -1;
try
{
connSocket.Blocking = true;
length = connSocket.Receive(arrData, SocketFlags.None);
//connSocket.ReceiveTimeout = 5000;
}
catch (Exception ex)
{
ShowLog("接收数据时发生异常:" + ex.Message);
break;
}
if (length >0)
{
try
{
string strData = Encoding.UTF8.GetString(arrData);
ShowLog(strData);
}
catch (Exception ex )
{
ShowLog("发送数据时发生异常:"+ex);
}
}
else
{
string s = "没有找到数据";
connSocket.Send(Encoding.UTF8.GetBytes(s));
}
connSocket.RemoteEndPoint.ToString();
}