【发布时间】:2014-01-24 16:20:30
【问题描述】:
我正在使用 tcp 套接字编写服务器/客户端应用程序,我的问题是如何检测半开连接,我打算使用 keep-alive 但有些人建议我做自己的协议,所以我现在计划是:
在服务器端:
服务器将等待 10 秒让客户端发送一些数据,如果服务器在给定时间内没有收到来自客户端的任何消息,则服务器会将客户端标记为断开连接,否则,如果服务器收到来自客户端的消息客户端它将再次重置计时器。
在客户端:
客户端将每 10 秒发送一次消息,但如果服务器向客户端请求一些数据(例如,如果计数器在 5 秒内,并且客户端向服务器发送一些数据),客户端中的计时器将再次重置为 0。
简而言之,协议将在收到最后一条消息后从 0 计数到 10 以关闭连接。
我现在的问题是,这样可以吗?还是我做错了?或者这是一个坏主意?还是我会在客户端和服务器上遇到任何问题/错误?或者我的连接会被防火墙、nat 等阻止吗?
谢谢。
【问题讨论】:
标签: tcp