连接之后发送,接收关闭。就是短连接。
连接之后,发送接收,不关闭,就是长连接。
我看见有一些博客说,好像要设置keepAlive的值,但是在C#中没找到,这是怎么回事?
比如这篇文章:https://www.2cto.com/net/201303/195287.html
socket中有个keepalive的option,但这个没啥鸟用,系统上的keepalive包发送间隔太长不符合实际使用场景(当然你可以通过直接改注册表缩小这个值),一般正常做法是建立连接后隔一段时间发心跳包过去。
原来是这样啊。如果是手写发送包,服务器那边还要接收一下,那么如果客户端发送过去了,服务端不进行接收,直接在客户端这边try catch 看是否有异常来判断是否还保持连接,如果抛异常了,那么就断开连接了,否则就没断开连接。这样可不可以?
@HDWK: 一般不会这样,因为网络波动谁也说不好,这里一般会在尝试失败后再尝试几次如果还是没响应才shutdown