我正在编写一个TCP客户端和服务器应用程序。 服务器获取请求并在单独的线程中为每个客户端打开一个Socket。 客户端可能会注册事件,服务器应在事件发生后将事件发送给客户端。 我的问题是,保存套接字并在请求的同一个开放套接字上发送事件是一个好习惯。即如果没有消息被发送会在一段时间后套接字关闭怎么办?是否需要keepAlives?是否有任何其他方案会导致客户端仍然连接时断开连接。 为每个事件创建一个新套接字的开销是多少 - 服务器发送的每条消息都是什么?
答案 0 :(得分:0)
您可以建立活动连接,并且您不需要在服务器和客户端之间使用活动数据包进行TCP连接。如果连接断开,双方都会。
如果我理解正确,您可以轻松检查连接是否在数据包接收功能中丢失。只需导入一个在断开连接时重新连接的功能。
但是如果在服务器发布新的“事件”之前删除连接并在此之后重新连接,则客户端无法接收此数据包。
如果您通过此问题,请尝试以下操作: