背景是: 文件服务支持http range
, 使用多线程下载一个文件,
做法是将文件大小切割下, 每个线程下一部分
请问下能够使用多个SocketChannel
去链接同一个InetSocketAddress
吗? 我对这部分的概念不太熟悉.
val hostAddress = new InetSocketAddress("localhost", 8091)
/* thread1 */
val c1 = SocketChannel.open(hostAddress)
c1.write("GET..")
c1.read()
/* thread2 */
val c2 = SocketChannel.open(hostAddress)
c2.write("GET...")
c2.read()
...
如果不行的话, 第二种做法, 就是每个线程设置不同的 InetSocketAddress, 请问下这种做法有没有什么问题呢?
1
billlee 2020-06-26 14:56:16 +08:00 1
当然可以,它就是个地址而已。文档里说了它是 immutable 的
|
2
arloor 2020-06-26 17:01:14 +08:00 via Android
当然可以
这个问题就是一台主机是不是只能有 65536 个 tcp 连接 |