gpt4 book ai didi

java - 保持Socket连接打开以进行阅读是一种好习惯吗?

转载 作者:行者123 更新时间:2023-12-03 12:03:51 25 4
gpt4 key购买 nike

我正在尝试构建一个Android IM,因为用户可能收到来自其他人的新消息,我应该保持TCP连接打开并继续从中读取数据吗?例如

while(!shutdown) {
int count = socketChannel.read(buffer);
// do something with buffer
}

最佳答案

这取决于您的实现。如果您使用的是受阻止的套接字,那么您就不想这样做。这意味着如果您有多个客户端连接到服务器,则它们将阻止所有其他客户端连接到该服务器套接字。
您可以做的是使服务器套接字始终运行(如通常那样),然后使用客户端套接字连接到服务器套接字,以检查并接收到达的任何新消息。收到消息后,您可以关闭套接字。这可以每n秒执行一次。
另一种选择是使用无阻塞的套接字连接,并始终保持它们打开,但是如果您有很多客户端,这可能会导致问题。

关于java - 保持Socket连接打开以进行阅读是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44067439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com