Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java服务器-在多线程模式下处理传入套接字_Java_Multithreading_Sockets_Server - Fatal编程技术网

Java服务器-在多线程模式下处理传入套接字

Java服务器-在多线程模式下处理传入套接字,java,multithreading,sockets,server,Java,Multithreading,Sockets,Server,我已经开始用Java编写基于套接字的服务器,我有一些问题。 当我收到传入请求时,ServerSocket将套接字返回给我。然后我创建单独的线程并在那里使用这个新的套接字。 在一些传入请求之后,我有一些分离的线程和一些套接字。 所有套接字使用相同的输入地址和端口。 问题- 服务器如何理解他必须向哪个线程提供输入数据包?可以 请给我一些关于我可以阅读的书籍或链接的建议 了解服务器如何在低级别上工作 服务器(例如ApacheTomcat)如何处理传入的套接字? 据我所知,服务器有一个用于输入数据包的输

我已经开始用Java编写基于套接字的服务器,我有一些问题。 当我收到传入请求时,ServerSocket将套接字返回给我。然后我创建单独的线程并在那里使用这个新的套接字。 在一些传入请求之后,我有一些分离的线程和一些套接字。 所有套接字使用相同的输入地址和端口。 问题-

服务器如何理解他必须向哪个线程提供输入数据包?可以 请给我一些关于我可以阅读的书籍或链接的建议 了解服务器如何在低级别上工作

服务器(例如ApacheTomcat)如何处理传入的套接字? 据我所知,服务器有一个用于输入数据包的输入队列。
此队列是否会影响服务器的速度?我在哪里可以了解到服务器工作的这种低级算法?

SocketServer侦听特定的主机和端口。所谓的监听插座。一旦服务器收到一个新的连接请求,服务器就会创建一个新的套接字并将其绑定到新的连接

更深入地解释了这个过程


如果我找到其他好的阅读材料,我会看一看。

沃纳森,非常感谢!好链接!
据我所知,我错了,因为我认为套接字只是目的地ip+目的地端口的组合。但套接字是目标ip、目标端口、源ip和源端口的组合。而且,据我所知,当客户端应用程序创建一些套接字(新的套接字(目标ip,目标端口))时,所有这些套接字都将具有相同的目标ip+目标端口,并且可能具有相同的源ip,但它们将具有不同的源端口。是吗

套接字是连接或端点的句柄。该连接或端点具有它所具有的任何属性。侦听套接字是一个句柄,用于处理与连接套接字不同类型的事情。TCP连接由源IP、源端口、目标IP和目标端口标识。线程具有引用TCP连接的句柄。