2014-03-06 63 views
1

我有兩個客戶端,我想將它們連接到使用UDP套接字的守護進程。它使用IP地址1和端口1進行通信。在每個客戶端中,我使用守護進程正在使用的IP和端口#1創建一個套接字。這兩個客戶端可以使用相同的IP地址和端口號嗎?UDP通信中的端口和IP地址使用情況

回答

3

這取決於你的意思是「使用」。

使用IP守護進程監聽的IP和端口,兩個客戶端都可以做connect()sendto(),這是正確的。

使用守護進程正在監聽的IP和端口,任何客戶端都不會執行bind()

+0

我想使用sendto()和recv()方法來發送和接收數據。我什麼時候會使用bind()?它是幹什麼用的? –

+0

'bind()'僅在需要控制客戶端要使用的源IP和/或端口時使用。當你在UDP套接字上調用sendto()時,操作系統會爲你執行一個隱式的bind(),所以通常客戶端不需要調用bind()。 – Marcus