0

これは Windows 7 のバグですか、それとも既知の動作ですか ???

ポート 5000 などのポート (誰もリッスンしていないポート) への接続を継続的に試行するアプリケーションを作成する場合...

Windows は、そのソケット接続の試行ソース ポートごとに割り当てます。

しばらくすると (私のテストでは、ソース ポートは 1000 ~ 65535 の範囲で循環しています) ...windows は同じポート 5000 を提供します!

その状況では、アプリケーションはそれ自体に接続し、ループバック エコーのように話します。

そのため、アプリケーションは 64000 回に 1 回の試行でまったく異なる動作をします。

win-netcatでテストしました

$ nc 127.0.0.1 5000 (with source port =5000 too)
on windows 7        ... loopback echo!
on windows 7 server ... loopback echo!
on windows 8        ... not connected (which is good)
on windows XP       ... not connected (which is good)
(managing source port to be exact 5000 was with separate batch script that run many connections... until source port is near <5000)

これは Windows 7 のバグですか? 誰かに知られている場合、プログラムでそれを回避する最善の方法は何ですか.

4

0 に答える 0