2014-01-21 60 views
1

我的应用程序由一个接收高流量的UDP服务器组成。共享相同UDP端口发送的两个进程

我在考虑增加应用程序的容量吞吐量,并且线程不是选项。因此考虑同一过程的多个实例。

我在想是否有可能重复使用完全相同的UDP套接字在两个不同的进程之间发送流量。我只对发送感兴趣,因为以另一种方式处理接收。

将插座上的设置选项设置为SO_REUSEADDR有帮助吗?

+0

[套接字选项SO \ _REUSEADDR和SO \ _REUSEPORT可能重复,它们有什么不同?它们在所有主要操作系统中的含义是否相同?](http://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they -mean-t) – EJP

回答

4

不能在两个不同的过程中创建两个服务器,因为同一端口上绑定第二个请求将失败,所以你必须使用SO_REUSEPORT选项,允许插座结合 遵循Let two UDP-servers listen on the same port?供大家参考。

+1

http://stackoverflow.com/questions/14388706/socket-options-so-reuseaddr-and-so-reuseport-how-do-they-differ-do-they-mean-t – selbie

+0

即使SO_REUSEPORT/SO_REUSEADDR绑定套接字,是否存在此方法可能产生的任何问题。例如,当两个进程试图同时发送消息时会发生什么,这是我应该考虑的事情吗? – nikpel7

+0

我正在考虑downvoting这个答案。看例如:http://stackoverflow.com/questions/670891/is-there-a-way-for-multiple-processes-to-share-a-listening-socket –

相关问题