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

时间:2014-05-30 08:04:10

标签: java multithreading sockets

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

让一个线程t1。它在端口2106处创建套接字连接并开始获取数据。现在它正在获取数据并写入文件系统。同时另一个Thread t2开始。该t2线程在相同端口2106处创建到同一ip的套接字连接并获取数据。现在在我的情况下,线程t2获取数据,但线程t1什么都不做。

任何人都可以说出这是为什么吗?

1 个答案:

答案 0 :(得分:2)

根据您的文本,2个线程创建和维护到端口上监听的服务器套接字的连接套接字并不违法。

这是带有标签的浏览器,如果您从2个不同的标签打开例如facebook.com。

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