2014-01-21 120 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 –

相關問題