简单的Socket报错问题,请教一下!很快揭帖

showmetoyou 2006-03-07 05:31:30
我在本地的写的Socket程序;在调试时,服务期端Send数据给客户端后,还想做一些事情,但报错:
未处理的异常: System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的
连接。
因为客户端在接收到服务期的信息后,确实是关闭了Socket!
所以我有如下疑问:
1.服务期端Send数据给客户端后,还能接着做事嘛?
2.客户端在接收到服务端的信息后,和服务器的通讯结束了,难道不应该关闭Socket嘛?
3.有什么方法解决这个问题嘛?
...全文
173 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
nuelaleo 2006-03-16
  • 打赏
  • 举报
回复
打个比方,假如两个人在讲话,突然其中一个人死了,另一个人肯定会大吃一惊!
showmetoyou 2006-03-07
  • 打赏
  • 举报
回复
因为Client关闭Socket,然后Server端就抛出异常!是说客户端接收到数据没有问题后就关闭Client的Socket
showmetoyou 2006-03-07
  • 打赏
  • 举报
回复
呵呵!可能是我没有说清楚!
我在调试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 thing
lidong6 2006-03-07
  • 打赏
  • 举报
回复
1.服务期端Send数据给客户端后,还能接着做事嘛?
--------
一直循环,除非你的客户端每次都重新连接

2.客户端在接收到服务端的信息后,和服务器的通讯结束了,难道不应该关闭Socket嘛?
----------
这个就要看你的情况了,你可以发送完信息后关闭,下次再重新连.或是一直打开着.

3.有什么方法解决这个问题嘛?
charles_y 2006-03-07
  • 打赏
  • 举报
回复
1.服务期端Send数据给客户端后,还能接着做事嘛?
>>>当然可以

2.客户端在接收到服务端的信息后,和服务器的通讯结束了,难道不应该关闭Socket嘛?
>>>你如果觉得这个socket不再使用了,当然可以关闭,如果还要用,当然不能关闭

3.有什么方法解决这个问题嘛?
没有任何问题,你不应该关闭一个还在使用的socket

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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