1
4
当然,只是不要触发后台线程来处理客户机。 编辑 似乎您真正想要的是让大量客户机能够连接,但不创建线程负载。由于似乎不支持NIO,如何使用两个线程:
打电话
|
2
1
通常,服务器处理如下所示:
其中sockethandlingthread()是您创建的一个类,用于执行socket会话的服务器端应该执行的任何操作。 有两种基本方法可以满足您的要求(即处理插座) 同步地 )。第一种方法是简单地在处理程序线程上联接,然后再移回accept(),如下所示
正如下面的注释中指出的,您可以通过这样调用线程的run方法来避免连接。
代替开始和加入呼叫。 另一种方法是获取sockethandlingthread的run方法中的任何代码,并将其直接移动到循环中。 |
3
1
有一个很好的服务器端套接字处理示例,包括可以找到的池 here . 但是,考虑到您可能实际上不需要池——我可以从一个服务器为800个同时的客户机(每个客户机都有自己的专用套接字线程)提供服务。 |
4
1
您可以使用非阻塞套接字。如果您这样做,那么您就不需要为每个客户机提供线程。Java已经支持了这一段时间。 NIO . 我不确定这是否是JavaME支持的。JavaME是近年来发展起来的,它包括JSE的许多特性。在JavaME环境中需要服务器端功能,这可能有点不寻常,需要为许多客户端连接服务。 在您的情况下,流量是否仍然没有通过服务器路由?如果是这样,J2ME环境就没有理由不能通过到服务器的单个套接字连接接收来自许多其他客户机或对等机(如果您想这样调用它们)的消息。 |
5
0
您可以在接受套接字上设置一个sou超时。这将强制接受调用不阻塞。这样,您可以等待一小段时间,然后服务于一个以前接受的连接,然后返回到接受新的连接,等等。代码看起来像这样:
|
mig21 bis · 带套接字的SSL_set_fd地址边界错误 2 年前 |
hollow · 在读写C中的套接字时,为什么要使用循环缓冲区? 2 年前 |
Filipe · 通过http python发送图像 6 年前 |
Mr. Rogers · epoll_wait事件的epoll顺序 6 年前 |
Michael Beer · 查找插座的传输类型 6 年前 |