socket通讯的一些疑问

.Net技术 码拜 5年前 (2016-02-26) 316次浏览
最近在借一个项目学习socket通讯,场景是客户端隔一段时间向服务器发送消息(可能是1个钟头一条,可能是一秒钟一条,不固定频率),然后服务器返回结果。(原因是只需要提供接口,所以客户端是无法控制的)
原因是服务器需要返回结果,UDP处理起来会复杂很多,所以用了TCP。
另外原因是发送消息的频率不固定,并且每次发送的内容没有关联,所以计划服务器返回结果以后马上断开(这样的话,客户端需要本人处理一下异常)
现在对于这个流程把握不好:服务器返回结果以后马上断开并不是一个很友善的处理方式,但是在这个场景里,客户端是不可控的,又没有办法将断开的时机交给客户端,还有其它更好的处理方法吗?
解决方案

30

引用 2 楼 Runnerchin 的回复:

这个接口本身已经有web service 和 http 版本了,socket版本作为他们的补充,原因是有些场景http和web service 覆盖不到。

好吧,socket服务端本身是可以主动断开与某一客户端的连接的,所以主动切断没有问题

15

客户端在收到服务端返回的信息后,向服务端发出确认信息,然后两边断开连接

15

?客户端本人发了本人断就是,干嘛是服务器断?

40

可以长连接加超时方式。
客户端发送完一条消息以后,不立刻断开连接,而是设置一个超时,例如120秒,假如在这个时间内,没有再发送消息,就断开连接。服务器同样逻辑。
这个超时时间可以根据业务逻辑再进行调整,取得一个最优值。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明socket通讯的一些疑问
喜欢 (0)
[1034331897@qq.com]
分享 (0)