3

私の根本的な問題は、ネットワークで管理されているウイルス対策アプリにあると確信していますが、Python で作成した基本的なソケット クライアントは、少し前までは機能していましたが、「ソケット エラー 10013」が表示されるようになりました。JAVA のSocketTestアプリもあります。SocketTest は機能しますが、Python を接続することに失敗しました。WIN 7 PC には、ブリッジされていない 2 つのネットワーク カードがあります。ファイアウォールのオンとオフを切り替えました。企業 LAN への接続を無効にすると、Python クライアントは問題なく動作します。繰り返しますが、この構成は数か月間機能しました。私は違いを見つけることができません。サンプルコードは次のとおりです。

パイソン

MY_IP = '192.168.100.2'
MY_PORT = 62828
ROBOT_IP = "192.168.100.10"
ROBOT_SOCK = 29999

robotSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
robotSocket.bind((MY_IP, MY_PORT)) # Tried without binding
robotSocket.connect((ROBOT_IP, ROBOT_SOCK))

結果「ソケットエラー 10013」

ジャワ:

socket = new Socket(ROBOT_IP, ROBOT_SOCK);
is = socket.getInputStream();
in = new BufferedInputStream(is);
while (!desonnected)
{
    try
{
    String got = readInputStream(in); // in.readLine();

これは問題なく動作しますが、Python コードを調整するための違いが見つかりません。ウイルスバスターであることは確かなのですが……。

編集

提案どおりにWireSharkを実行しました。両方のネットワーク カードが有効になっていると、Python 接続要求は送信されません。企業 LAN を無効にした後、JAVA クライアントと Python クライアントの接続要求を比較したところ、もちろんローカル ポートを除いて同じデータが含まれていました。

4

1 に答える 1

0

私は最近、Windows 7 でのソケット バインドと複数の NIC にかなり苦労しました。

私は通常、UNIX の男ですが、好意として友人のために C#.Net を実行する必要がありました..

私の問題は、ソケットをクライアント側の特定のポートと IP にバインドできないことでした。解決策は、バインドしたい NIC の「バインド優先度」を上げることでした。私は Windows についてあまり詳しくないので、これ以上詳しく説明することはできません。情報については、この記事を読んでください。Windows 7 でのネットワーク アダプター カードの優先順位のバインド順

ソケット エラー 10013 はアクセス許可に関連しているように見えるため、同じ問題が発生しているかどうかはわかりません。Googleはこれを教えてくれます:ソケットエラー10013の処理

于 2012-10-03T12:11:39.043 に答える