2 回答
TA贡献1848条经验 获得超6个赞
这在很大程度上取决于套接字的使用频率。例如,如果您知道客户端将每 50 毫秒向服务器发送一次请求,那么保持套接字打开会更容易。但是,如果您知道客户端只会每 5 分钟从套接字请求一次信息,那么关闭连接并在需要时创建一个新连接可能会更好。如果您不知道下一个请求何时创建,也是如此。
在服务器端创建一个新的 Socket 并不是很昂贵,所以如果它不经常使用,最好关闭连接。一个例外可能是一个特殊的套接字,它在创建时需要验证或其他昂贵的东西,但在学校项目中可能不是这种情况。
所以总的来说:这取决于套接字的使用情况,但是如果您不确定它是否经常使用,最好关闭它并在需要时再次打开它。
TA贡献1794条经验 获得超8个赞
与这个问题相关:
如果您担心超过可以打开的最大套接字数(我想这在您的情况下是极不可能的)您可以创建一个解决方法,您使用 TCP 最初建立连接,向客户端发送一个 UID( Unique Identifier,64 位unsigned long long
类型应该足够了)然后关闭 TCP 连接。填写并维护一个详细说明连接详细信息(IP 地址、唯一标识符代码)的结构(或您的情况下的 Class 对象),然后等待通过 UDP(用户数据报协议,TCP 的替代方案)发送的到达数据包。如果您决定使用 UDP,请注意您需要实现一种重新排序数据包的方法以重建字节流(序列化)和一种在数据包不知何故未到达时重新发送数据包的机制(数据包丢失恢复) .
听起来比实际情况更糟。不过,我会重复一遍,如果您不担心超出任何限制,请不要为这些错综复杂的事情而烦恼。
添加回答
举报