目前我的客户端上有两个网络接口。我创建了两个单独的套接字,它们绑定到每个接口 ip。现在我还有两台服务器,每台都与客户端上的一个套接字通信。我希望能够同时从两个接口(当前使用 UDP 或 DGRAMS)接收数据(现在约 10MB,但以后会更大),但由于某种原因,总是存在延迟,因为它必须用一个来完成数据传输在它开始在另一个套接字上传输之前。
我已经确认绑定每个接口都是成功的,并且我能够在每个套接字上与其各自的服务器进行通信。目前我只是在同一个代码块内s1.recv()
执行。s2.recv()
所以我的问题是,延迟是由于 using 的“阻塞”功能recv()
吗?另外通过我的搜索,似乎有办法使该功能解除阻塞?但我不确定如何去做……这会通过使用多线程来解决吗?我对多线程有点生疏,但如果它解决了我的问题,我会调查它。如果没有,那么我如何利用这两个接口,因为我能够从两个接口并行接收/发送?
如果有人可以提供帮助,我将不胜感激。