当我尝试绑定多个套接字时,我在代码中发现了一个问题。我试图解释这种情况,我有一个由两部分组成的应用程序,一部分是用machine_1运行的C语言编写的,另一部分是运行在machine_2上的Java。 C程序应该能够通过一个端口将udp-packets发送到正在侦听它们的machine_2上的4个端口。反之,machina_2应该通过一个输出端口将udp-packets发送到machine_1上的4个相应端口。C /如何为传入和传出数据绑定多个套接字
我的问题是上machine_1:
- 我有两个线程在那里,一个处理传出数据以machine_2和一个处理输入数据。在第一个线程中(处理传出数据),我创建了4个套接字(带有4个不同的端口)来寻址machine_2上的相应套接字。在这个方向正常工作...
- 但是当我尝试创建从machine_2输入数据的插座,我希望像我一样对machine_2输入数据使用相同的端口号,但后来我遇到的问题当我尝试绑定套接字时。给我
: Address already in use
错误。
我需要一些帮助,了解如何在C应用程序中的machine_1内为传出端口和传入端口设置套接字配置。也许是关于如何使用select()
函数来侦听所有4个传入套接字的示例。
如果来了代码示例需要,我可以在这里添加它们,但我说这只是工作它通过一个插座上machine_2 4个不同的插座处理传出数据的thread_1。
在此先感谢您的帮助!
我希望附加的图片可以解释更多的情况一点,重要的是我想在两台机器上的输入数据使用相同的端口号。意思是,机器_1上的端口_1具有与机器_2上的端口_1相同的端口号,等等......
你能澄清一件事,你在创建线程1 4个插槽,另外4线程2? – Fred
是的,这就是我想要做的。我想这就是问题所在,但我还没有解决方案。在Thr_1中,我创建了4个套接字来处理远程machine_2的套接字。在Thr_2中,我想在本地计算机上创建4个侦听传入数据包的套接字... – nyyrikki