我想建立一個服務器,在此服務器首先我對收到UDP,然後繼續等待更多的UDP消息,當我收到這首UDP消息,我需要創建一個TCP連接並等待客戶端。綁定地址已經用c UDP/TCP
如果我等待UDP消息,並從TCP開始,我的服務器完美工作,但我想使用fork,並且父親等待更多的UDP消息,並且在孩子開始使用TCP部分的情況下,但如果我這樣做,我有一個綁定的問題,因爲它已被UDP部分使用......所以..有沒有解決方案呢?
是否有可能做我想做什麼?
我希望你能理解。
非常感謝。
我想建立一個服務器,在此服務器首先我對收到UDP,然後繼續等待更多的UDP消息,當我收到這首UDP消息,我需要創建一個TCP連接並等待客戶端。綁定地址已經用c UDP/TCP
如果我等待UDP消息,並從TCP開始,我的服務器完美工作,但我想使用fork,並且父親等待更多的UDP消息,並且在孩子開始使用TCP部分的情況下,但如果我這樣做,我有一個綁定的問題,因爲它已被UDP部分使用......所以..有沒有解決方案呢?
是否有可能做我想做什麼?
我希望你能理解。
非常感謝。
UDP和TCP端口在不同的空間。所以你可以有一個套接字綁定到UDP/8888,另一個綁定到TCP/8888沒有問題。如果你的子進程試圖綁定到同一個TCP端口,那麼你可能會遇到問題。
具有相同的端口上開啓UDP和TCP套接字是罰款。例如DNS在UDP 53和TCP 53端口上工作。您應該在fork之前打開套接字,然後在child中關閉它不需要使用的套接字。
您有哪些'bind'與準確的問題嗎?孩子應該繼承UDP和TCP監聽套接字,所以它不需要「綁定」任何東西。 –
由於TCP套接字已經被UDP套接字使用,所以對TCP端口沒有任何問題。請說明您的實際問題,並最好顯示一些代碼。 – EJP