2010-12-03 3 views
1

이상한 문제가 있습니다. 서버에 패킷을 보내는 클라이언트가 있지만 서버 UDP 소켓이 패킷을받지 못합니다. 내가 보내고받는다면 똑같은 일이 그 반대로 일어난다.WireShark가 패킷 수신을 감지했지만 응용 프로그램이 수신하지 못합니다.

확인 와이어 샤크에서 캡처 한이 이미지 : http://img263.imageshack.us/img263/2636/bokus.png

나는 서버의 내부 IP입니다 된 EndPoint 192.168.2.3, 내 UDP 소켓을 바인딩 근래

및 포트는 9998. 클라이언트에 데이터를 전송 내 IP를 로컬 서버 시스템으로 전달해야합니다.wireshark는 대상 포트 9998을 사용하여 192.168.2.3에 대한 패킷 수신을 명확히 감지하지만 아무것도 배달되지 않습니다.

(... 왜 BTW 대상 포트에 distinct32 말하는가?)을 감시하기 위해 다른

+0

귀하의 질문에 어떤 문제가 있을지 모릅니다. 코드에 버그가있을 수 있습니다. – dtb

+0

나는 무엇이 잘못 될 수 있는지 모른다. UDP 소켓은 올바른 EndPoint에 바인드하고 오른쪽 FromPoint에서 receivedFrom을 수신합니다. receiveFrom 콜백이 실행되지 않습니다. 잘못된 EndPoints가 아닌 다른 문제에 영향을 미칠 수있는 항목은 무엇입니까? – KaiserJohaan

+0

마지막 질문 : 일반적으로이 포트를 사용하는 (비공식) 서비스이기 때문에 : http://ports.my-addr.com/tcp_port_list-udp_port_list_search_by_number.php?filter=on&protocol=UDP&ports_list=9709-10010 – VVS

답변

0

뭔가 당신이 실행 수있는 방화벽이 포트 9998.

을에 통신을 허용하는 규칙 설정을 가지고 있는지 확인하다

내가 알기로 C# 코드를 알아야 할 필요가 있다면 클라이언트 측에서 TCP 패킷을 사용하지만 UDP 패킷을 받으려고하는 것처럼 보입니다. (아니면 스크린 샷의 일부 텍스트를 오해 할 수도 있습니다.)

UDP를 사용할 때 연결을 '수신 대기'할 필요가 없습니다. UDP 패킷에는 연결/연결 끊기 프로토콜이 없습니다. 패킷이 전송 된 것과 동일한 순서로 수신되도록 보장하지도 않습니다.

C# 클라이언트에서이 줄을 따라 뭔가를 사용하고 데이터가 있는지 확인하십시오.

var udpClient = new System.Net.Sockets.UdpClient(9998); 
Byte[] receiveBytes = udpClient.Receive(ref RemoteIpEndPoint); 
+0

안녕하세요, 아니 작동하지 않습니다 : (나는 왜 dosn't, TCP 잘 작동하지만 UDP하지 않습니다. – KaiserJohaan

관련 문제