1
아래 코드를 사용 중입니다. 언젠가 소켓이 출시되지 않은 것 같습니다.udpclient.close가 소켓을 항상 닫지는 않습니다.
어떻게 발견 되었습니까? 프로세스 탐색기 (sysinternal에서)를 사용하여 응용 프로그램의 소유권 TCP/IP 탭으로갑니다.
I 포트를 볼 수는 동안 (5 주와 같은) 그것이 있어야하는 동안 응용 프로그램에서 사용하는 40 포트처럼이 후,
내 문제는 콘솔에 "에서 netstat -a"를 입력하여 사용 제로.
누구나 그 이유를 알 수 있습니까? 소켓이 프로세스가 죽을 때까지 기다리고 앉아서하는 패킷을 수신하지 않을 경우
SNTPData = TimeSocket.Receive(ref EPhost);
:
public void Connect()
{
try {
// Resolve server address
IPHostEntry hostadd = Dns.GetHostEntry(TimeServer);
IPEndPoint EPhost = new IPEndPoint(hostadd.AddressList[0], 123);
//Connect the time server
UdpClient TimeSocket = new UdpClient();
TimeSocket.Connect(EPhost);
TimeSocket.Send(SNTPData, SNTPData.Length);
SNTPData = TimeSocket.Receive(ref EPhost);
TimeSocket.Close();
if (!IsResponseValid())
{
throw new Exception("Invalid response from " + TimeServer);
}
} catch(SocketException e)
{
throw new Exception(e.Message);
}
}
올바른 경우 답변에 투표하십시오. ;) – Isaac