简单的Socket报错问题,请教一下!很快揭帖
我在本地的写的Socket程序;在调试时,服务期端Send数据给客户端后,还想做一些事情,但报错:
未处理的异常: System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的
连接。
因为客户端在接收到服务期的信息后,确实是关闭了Socket!
所以我有如下疑问:
1.服务期端Send数据给客户端后,还能接着做事嘛?
2.客户端在接收到服务端的信息后,和服务器的通讯结束了,难道不应该关闭Socket嘛?
3.有什么方法解决这个问题嘛?
问题点数:40、回复次数:5Top
1 楼charles_y(每天上网一小时)回复于 2006-03-07 17:40:47 得分 20
1.服务期端Send数据给客户端后,还能接着做事嘛?
>>>当然可以
2.客户端在接收到服务端的信息后,和服务器的通讯结束了,难道不应该关闭Socket嘛?
>>>你如果觉得这个socket不再使用了,当然可以关闭,如果还要用,当然不能关闭
3.有什么方法解决这个问题嘛?
没有任何问题,你不应该关闭一个还在使用的socket
Top
2 楼lidong6(立冬)回复于 2006-03-07 17:45:18 得分 10
1.服务期端Send数据给客户端后,还能接着做事嘛?
--------
一直循环,除非你的客户端每次都重新连接
2.客户端在接收到服务端的信息后,和服务器的通讯结束了,难道不应该关闭Socket嘛?
----------
这个就要看你的情况了,你可以发送完信息后关闭,下次再重新连.或是一直打开着.
3.有什么方法解决这个问题嘛?Top
3 楼showmetoyou(好的)回复于 2006-03-07 18:09:24 得分 0
呵呵!可能是我没有说清楚!
我在调试Server端程序,send给Client数据!因为Client关闭Socket,然后Server端就抛出异常!
未处理的异常: System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的
连接。
这个异常是必然的嘛?
必须下面这个样子嘛?
try
{
handler.BeginSend(bytedata,0,bytedata.Length,0,new AsyncCallback(SendCallback),handler);
}
catch
{
_socket.Shutdown(SocketShutdown.Both);
_socket.Close();
}
//Do other thingTop
4 楼showmetoyou(好的)回复于 2006-03-07 18:10:49 得分 0
因为Client关闭Socket,然后Server端就抛出异常!是说客户端接收到数据没有问题后就关闭Client的SocketTop
5 楼nuelaleo(nuelaleo)回复于 2006-03-16 11:00:35 得分 10
打个比方,假如两个人在讲话,突然其中一个人死了,另一个人肯定会大吃一惊!
Top




