Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.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 - Fatal编程技术网

Java 使用两个线程创建到同一端口的两个套接字连接合法吗

Java 使用两个线程创建到同一端口的两个套接字连接合法吗,java,multithreading,sockets,Java,Multithreading,Sockets,在我的多线程应用程序中,可能有多个线程使用不同的套接字将应用程序访问到同一端口。这在编程上是否与我的情况相同,当第二个线程创建到同一端口的套接字连接时,第一个线程的状态显示为正在运行,但它什么也不做。 例如。 假设有一个线程t1。它在端口2106创建一个套接字连接并开始提取数据。现在它正在获取数据并写入文件系统。与此同时,另一个线程t2开始。此t2线程在同一端口2106创建到同一ip的套接字连接并获取数据。现在在我的例子中,线程t2获取数据,但线程t1什么也不做 有谁能告诉我这是为什么吗?根据您

在我的多线程应用程序中,可能有多个线程使用不同的套接字将应用程序访问到同一端口。这在编程上是否与我的情况相同,当第二个线程创建到同一端口的套接字连接时,第一个线程的状态显示为正在运行,但它什么也不做。 例如。

假设有一个线程t1。它在端口2106创建一个套接字连接并开始提取数据。现在它正在获取数据并写入文件系统。与此同时,另一个线程t2开始。此t2线程在同一端口2106创建到同一ip的套接字连接并获取数据。现在在我的例子中,线程t2获取数据,但线程t1什么也不做


有谁能告诉我这是为什么吗?

根据您的文本,两个线程创建并维护与侦听端口的服务器套接字的连接套接字并不违法

如果您从两个不同的选项卡打开例如facebook.com,这就是带有选项卡的浏览器所做的


但事实证明,您的服务器似乎是一个迭代连接服务器,这意味着您不需要创建单独的线程或进程来处理每个连接。但所有现代web服务器都是并发连接服务器,因此,如果您从两个不同的线程创建两个不同的连接,它将依次由服务器端的两个不同线程处理。

您的标题中的问题的答案是“是”。尽管不清楚,这是否是您在文本中实际要问的问题。如果服务器套接字一次支持多个打开的连接,则您可以这样做,如果服务器允许多个连接,则没有此类限制。这是。您需要确保服务器可以处理多个连接。