왜이 시점에서 LocalEndpoint = 0.0.0.0입니까? 문서에 따르면 시스템에 의해 선택된 적절한 주소 여야합니다. 참고 : 이것은 일부 컴퓨터에서만 발생합니다. 대부분의 기계는 예상했던 IP 주소를 반환합니다. 이것은 .NET의 버그입니까? 일부 컴퓨터에서는 C# Socket.LocalEndPoint가 0.0.0.0을 반환합니다.
using (Socket s = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp))
{
Console.WriteLine("Connecting");
s.Connect("www.google.com", 80);
Console.WriteLine("Connected OK");
s.Send(new byte[] { 1 });
Console.WriteLine("Sent Byte OK");
Console.WriteLine("Local EndPoint = " +
s.LocalEndPoint.ToString());
}
//Local EndPoint = 0.0.0.0
내가 직접 소켓을 생성 한 후
s.Bind(new IPEndPoint(IPAddress.Any, 0));
을하고 시도 그것은 차이를하지 않았다. "문제"컴퓨터는 항상 0.0.0.0을 반환합니다.
Media State . . . . . . . . . . . : Media disconnected
Description . . . . . . . . . . . : VIA VT6105 Rhine Fast Ethernet Adapter
Physical Address. . . . . . . . . : 00-30-18-67-A0-EB
이더넷 어댑터 로컬 영역 연결 :
Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : Realtek RTL8029 PCI Ethernet Adapter
Physical Address. . . . . . . . . : 00-C0-DF-E7-C9-5D
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 10.0.0.6
Subnet Mask . . . . . . . . . . . : 255.0.0.0
Default Gateway . . . . . . . . . : 10.0.0.2
DHCP Server . . . . . . . . . . . : 10.0.0.2
DNS Servers . . . . . . . . . . . : 10.0.0.2
Lease Obtained. . . . . . . . . . : Wednesday, May 20, 2009 5:39:06 PM
Lease Expires . . . . . . . . . . : Thursday, May 21, 2009 5:39:06 PM
10.0.0.6 여기
모든Windows IP Configuration
Host Name . . . . . . . . . . . . : andrepc
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Unknown
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
이더넷 어댑터 로컬 영역 연결 2 /에서 ipconfig의 결과입니다 그 결과로 내가 기대할 수있는 IP가 될 것입니다.
컴퓨터의 명령 콘솔에 "ipconfig/all"을 입력 해보십시오. – ChrisW