理解できない奇妙な動作に遭遇しました。 Windows 2003 Serverにソフトウェアをインストールしています。このソフトウェアは、要求をリッスンするために、特定のUDPポートとすべてのTCPアドレスにバインドする必要があります。選択したいくつかのポートにバインドできますが、他のポートにはバインドできません。具体的には、私が必要とする1つのポート(5001)にバインドしないでください。5002、5010のような他のおそらく空きポートも失敗します。私の最初の推測は、「別のプログラムによって使用されている」ということでしたが、netstatまたはTCPView( sysinternalsから)、そのため、これについて何をすべきか途方に暮れていますプログラムはソケットエラー10048(アドレスは既に使用中)を取得しています。
これらは、「問題のある」プログラムを探して見つけるために使用するコマンドの例です。
c:\>netstat -a -v -n -o -p udp
Active Connections
Proto Local Address Foreign Address State PID
UDP 0.0.0.0:445 *:* 4
UDP 0.0.0.0:500 *:* 512
UDP 0.0.0.0:1434 *:* 1980
UDP 0.0.0.0:4500 *:* 512
UDP 0.0.0.0:5000 *:* 5920
UDP 0.0.0.0:5500 *:* 5288
UDP 127.0.0.1:123 *:* 856
UDP 127.0.0.1:1314 *:* 4376
UDP 172.20.1.10:123 *:* 856
UDP 172.20.1.10:137 *:* 4
UDP 172.20.1.10:138 *:* 4
(No UDP port 5001 is in use!)
Or:
C:\> netstat -an | findstr 5001
(no output)
ローカルAdministratorアカウントを使用してすべてのテストを実行しましたが、役に立ちません。私のプログラムはC++(Winsock 2)で書かれていますが、簡単なVB6プログラムを使用して簡単なテストを実行しても同じ結果が得られました。 DNSサービスがインストールされていません(UDPポートの範囲を予約することが知られています)。
「問題の」プログラム、つまり、使用する必要があるUDPポートを使用するプログラムを見つけるにはどうすればよいですか?
ポート5000および5001は、Yahoo Messengerによって使用されます。あなたがnetstatするときに両方が表示されるかどうかわからない。
また、5001は疑わしい-リモートアクセス型のトロイの木馬で使用されていたことを覚えています。詳細はわかりません。
サーバーにTelnetでポート5001に接続しようとしましたか?それは本当に聞いている/使用していますか?
これはOSのエラーのようです。とても古いので、誰が知っていますか?短期的には、再起動します。長期的には、サポートされているOSへのアップグレードを検討してください。サーバー2003のサポートは2015年7月14日に終了しました。