有效地处理服务器中的大量套接字

时间:2016-04-19 11:43:31

标签: java performance sockets server

我必须编写一个程序,客户端向服务器发送一些数字并等待其响应,其他随机数。它工作无限发送号码等待响应等...

我想编写一个获取大量连接(并创建套接字)的服务器如何以有效的方式执行此操作(无需为每个创建的套接字创建线程)?

为每个请求和响应打开和关闭套接字是否更好?

当我不知道哪个是正确的套接字时,有没有办法通过套接字发送答案,但我知道所有套接字都是从同一个客户端计算机启动的,我知道客户端的端口源 (我想过制作套接字数组)

1 个答案:

答案 0 :(得分:0)

  

我怎么能以有效的方式做到这一点(没有为每个创建的套接字创建线程)?

您假设没有证据证明每个套接字的新线程效率低下。它不是。

  

为每个请求和响应打开和关闭套接字是否更好?

没有。看看HTTP的历史。 1.0和1.1之间的主要变化是持久连接的引入,无论服务器端架构如何都可以实现。

  

当我不知道哪一个是正确的套接字时,有没有办法通过套接字发送答案

我不明白这种情况可能会如何发生。答案仅在特定会话的上下文中有意义,该会话与特定套接字相关联。如果您不保留这些信息,那么您应该这样做。这只是一个数据结构问题。

  

但我知道所有的套接字都是从同一个客户端计算机启动的,我知道客户端的端口源(我想过制作套接字数组)

如果你能记住源端口,你可以记住套接字本身。同样,这只是一个数据结构问题。并且不需要假设/约束所有连接来自同一客户端。除非该客户端是多线程的,否则根本不需要多个连接。