C#.Net Socket保持活动时间?

时间:2011-06-28 04:14:03

标签: c# .net visual-studio sockets timeout

这里有新手问题..试着在这里确定..

这是一个HTTP Keep-Alive问题。

有没有办法确保套接字在一定时间后关闭()。

为什么我要问这个,因为如果我马上关闭套接字......客户端可能不会收到数据包以表明密码不正确等。

Socket内置命令是否有超时?

我正在努力避免构建一个计时器或事件,以便在考虑替代解决方案时关闭它

2 个答案:

答案 0 :(得分:2)

我自己从未尝试过,但有LingerOption

看看Socket.LingerState Property

  

此属性控制长度   那个以连接为导向的时间   连接将在a之后保持打开状态   当数据仍然存在时调用Close   发送。当您调用要发送的方法时   数据到对等体,这个数据放在   传出网络缓冲区。这个   属性可以用来确保   此数据将发送到远程主机   在Close方法之前删除   连接。

答案 1 :(得分:0)

我假设你在谈论TCP协议 如果您想确保客户端已收到某些内容,则客户端需要发送最后收到的消息的响应(例如,密码错误),并且服务器在收到确认后或有读取超时时关闭连接。