0

指定されたポートのリッスンに問題があります。次のコードがあります。

Socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Unspecified);
Socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
Socket.Bind(new IPEndPoint(localAddr, 80));

Socket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);
Socket.IOControl(IOControlCode.ReceiveAll, BitConverter.GetBytes(1), BitConverter.GetBytes(0));

Socket.BeginReceive(Buffer, 0, Buffer.Length, SocketFlags.None, new AsyncCallback(ReadCallback), null);

そして、すべてがうまく機能しているようです。着信パケットと発信パケットをキャプチャします。必要な情報はすべてありますが、1 つの例外があります。Bind() メソッドで指定した 80 だけでなく、すべてのポートをリッスンします。ポート80でこれらだけを読み取る方法を知っている人はいますか?

4

2 に答える 2

0

1 つの例外を除いて、必要なすべての情報があります。Bind() メソッドで指定した 80 だけでなく、すべてのポートをリッスンします。

例外はありません。投稿されたコードから、ポート 80 以外のポートから読み取りを行っている可能性はありません。

于 2013-09-06T09:29:43.213 に答える