2014-04-16 116 views
0

我這樣做:綁定UDP套接字連接到特定的本地端點

Socket socket = new Socket(SocketType.Dgram, ProtocolType.Udp); 
socket.Bind(new IPEndPoint(new IPAddress(new byte[] {192, 168, 1, 8}), 45678)); 
socket.BeginConnect(new IPEndPoint(new IPAddress(new byte[] { 65, 52, 108, 52 }), 80), null, null); 
socket.Send(new byte[] { 1, 2, 3 }); 

但插座沒有真正綁定到本地IP地址192.168.1.8,只是端口:

UDP 0.0.0.0:45678   *:* 

爲什麼?

回答

0

我用錯了重載的構造套接字:

Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 
socket.Bind(new IPEndPoint(new IPAddress(new byte[] {192, 168, 1, 8}), 45678)); 
socket.BeginConnect(new IPEndPoint(new IPAddress(new byte[] { 65, 52, 108, 52 }), 80), null, null); 
socket.Send(new byte[] { 1, 2, 3 }); 

現在它正確綁定:

UDP 192.168.1.8:45678  *:* 
相關問題