2015-09-09 82 views
-2

我想建立一個服務器,在此服務器首先我對收到UDP,然後繼續等待更多的UDP消息,當我收到這首UDP消息,我需要創建一個TCP連接並等待客戶端。綁定地址已經用c UDP/TCP

如果我等待UDP消息,並從TCP開始,我的服務器完美工作,但我想使用fork,並且父親等待更多的UDP消息,並且在孩子開始使用TCP部分的情況下,但如果我這樣做,我有一個綁定的問題,因爲它已被UDP部分使用......所以..有沒有解決方案呢?
是否有可能做我想做什麼?

我希望你能理解。

非常感謝。

+1

您有哪些'bind'與準確的問題嗎?孩子應該繼承UDP和TCP監聽套接字,所以它不需要「綁定」任何東西。 –

+0

由於TCP套接字已經被UDP套接字使用,所以對TCP端口沒有任何問題。請說明您的實際問題,並最好顯示一些代碼。 – EJP

回答

0

UDP和TCP端口在不同的空間。所以你可以有一個套接字綁定到UDP/8888,另一個綁定到TCP/8888沒有問題。如果你的子進程試圖綁定到同一個TCP端口,那麼你可能會遇到問題。

1

具有相同的端口上開啓UDP和TCP套接字是罰款。例如DNS在UDP 53和TCP 53端口上工作。您應該在fork之前打開套接字,然後在child中關閉它不需要使用的套接字。

相關問題