关于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();

}
...全文
112 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
永远的小鱼 2012-10-19
  • 打赏
  • 举报
回复
看看服务器端进行回复的时候 所使用的那个socket是否已经被关闭了?
six-years 2012-10-19
  • 打赏
  • 举报
回复
额来迟了
大眼睛 2012-10-19
  • 打赏
  • 举报
回复
找到答案了,是我连接的设备没有发数这个服务器就会认为出错了
大眼睛 2012-10-19
  • 打赏
  • 举报
回复
我这个就是相当于服务器端吧,在receive的时候connSocket是关闭的

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧