客户端可以同时有两个连接到同一个套接字侦听器吗?

Posted

技术标签:

【中文标题】客户端可以同时有两个连接到同一个套接字侦听器吗?【英文标题】:Can a client have two connections at the same time to the same socket listener? 【发布时间】:2016-11-24 14:31:54 【问题描述】:

我们有一个正在监听端口 17700 的服务器和一个想要同步其数据的客户端,但该客户端是多线程的,并且同时在两个线程上建立了到同一个端口的连接。当我们查看收到的数据时,我们注意到发送的包裹是相互“混合”的。

我的理论

服务器向客户端发送的包地址完全相同,所以客户端不知道哪些包是针对哪个线程的。

有没有办法解决这个问题?

【问题讨论】:

【参考方案1】:

使用并发队列就足够了,这样数据包就不会堆积。更清洁的解决方案是每个连接在两侧都有自己的套接字。 (+ 1 个监听器接受连接)

【讨论】:

感谢 DarkIrata,我们现在使用多个套接字并且它可以工作

以上是关于客户端可以同时有两个连接到同一个套接字侦听器吗?的主要内容,如果未能解决你的问题,请参考以下文章

Windows phone:无法使用套接字连接到计算机

socket.io 客户端可以连接到两个不同的服务器/端口吗?

TCP-IP 套接字 C:尝试连接到服务器套接字时出现错误地址错误

当我将多个客户端同时连接到 Java 服务器时,套接字写入错误

使用 gen_tcp 时的套接字接受率

如何使用 Perl 通过 TCP 和 UDP 连接到远程机器?