首页 新闻 会员 周边 捐助

socket 客户端在发送数据前判断连接状态(c#)

1
悬赏园豆:50 [已关闭问题] 关闭于 2011-08-17 16:31

现在用c#写一个tcp通讯客户端,在发送数据前判断是否与服务器正常连接 如果没有连接,则重连。(补充说明一下:我这边客户端只给服务器端上传数据,服务器端不会给我发送任何反馈消息,服务器端不是我写的。因为这个项目客户端数量比较少,但是数据量比较大不能用短连接只能用长连接)求一个判断socket连接状态的解决办法。

寒星射手的主页 寒星射手 | 初学一级 | 园豆:190
提问于:2011-08-16 21:47
< >
分享
所有回答(2)
0

tcp通信,你发得出就是已连接,否则报异常,你可以通过抓异常判断~~

你可以在发送真实数据前,发送一个判断是否可以通信的信号过去,能发就是通的,不能就不通,

不过socket还有一个Connected属性,

 

ATATA | 园豆:5 (初学一级) | 2011-08-17 09:08
0

socket还有一个Connected属性,不过这个不是很准确。

你这种情况。最好按MSDN上说的。在发送数据之前先发送一个空数组(Socket.Send(new byte[]{});)。

如果成功则说明连接正常。失败或异常则说明断开了。

边城浪 | 园豆:264 (菜鸟二级) | 2011-08-17 09:51
你说的这个不行,开发服务器端的不允许我这么弄,他的意思是让我自己判断,不能给他发送判断状态的数据包。
支持(0) 反对(0) 寒星射手 | 园豆:190 (初学一级) | 2011-08-17 10:06
就是这个。。如果是异步。服务端是不会响应这个请求的。
这个.NET在底层处理了的。
支持(0) 反对(0) 边城浪 | 园豆:264 (菜鸟二级) | 2011-08-17 18:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册