2010-12-03 29 views
1

私は奇妙な問題があります。私はサーバにパケットを送るクライアントを持っていますが、私のサーバのUDPソケットはそれを受信しません。私が送って彼が受け取ろうとすると、同じことが逆に起こります。 wiresharkのからキャプチャC# - WireSharkがパケットを受信したことを検出しましたが、アプリケーションが受信しません。

チェックこのイメージを、: http://img263.imageshack.us/img263/2636/bokus.png

私は肝炎は、クライアントが私にデータを送信するエンドポイントサーバーの内部IPである192.168.2.3、ポート9998. に私のUDPソケットをバインドIPをローカルサーバマシンに転送する必要があります。 wiresharkは宛先ポート9998の192.168.2.3のパケットを受信したことを明確に検出しますが、何も届きません!

(...なぜそれが宛先ポートにところでdistinct32と言っていますか?)を監視するために、他の

+0

あなたの質問には何が間違っているのかわかりません。おそらくあなたのコードにバグがあります。 – dtb

+0

私はおそらく何が間違っているのか分からない。 UDPソケットは正しいEndPointにバインドし、RightFrameからReceiveを受信します。 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#コードを知っている必要があります)、UDPパケットを受信しようとしているかもしれないが、クライアント側でTCPプロトコルを使用しているようです。 (または、スクリーンショットのテキストの一部を誤解している可能性があります)

UDPを使用しているときに接続をリッスンする必要はありません。 UDPパケットには接続/切断プロトコルはありません。パケットが送信されたのと同じ順序で受信されることも保証しません。

C#クライアントでこれらの行に沿って何かを試して、データを取得するかどうかを確認してください。

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

こんにちは、いいえ、それは動作しません:(私はなぜdosn't、TCPはうまく動作UDPのない考えている。 – KaiserJohaan

関連する問題