2012-10-03 85 views
3

我很確定我的根本問題是由我們的網絡管理的防病毒應用程序,但是我用Python編寫的基本套接字客戶端直到很久以前纔開始工作,錯誤10013「。我在JAVA中也有SocketTest應用程序。 SocketTest可以工作,但是我一直沒能成功連接Python。 WIN 7 PC有兩個網卡,沒有橋接。我打開和關閉了防火牆。如果我禁用到公司LAN的連接,那麼Python客戶端很高興。僅僅重申,這種配置工作了幾個月。 我找不到差異。下面是示例代碼:JAVA與Python Socket默認值

的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」

JAVA:

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連接請求。 禁用企業局域網後,我比較了JAVA客戶端和Python客戶端之間的連接請求,它們包含除本地端口外的相同數據。

+0

大多數防火牆工具可以允許一個程序,但不允許另一個訪問網絡。這很可能是諸如設置你的代碼用於工作。 –

+0

Wireshark可以解救你。觀察請求,迴應。你必須這樣做。沒有替代。現在就做或稍後再做。 Wireshark [或任何類似的工具:|] – Prasanth

+0

值得檢查一下機器的IP地址是否等於'MY_IP' –

回答

0

我最近在努力在Windows 7

我通常是UNIX的人很多與插座結合和多個NIC,但我不得不做一些C#.NET的朋友的青睞..

我的問題是我無法將套接字綁定到客戶端的特定端口和ip。解決方案是增加我想綁定的NIC的「綁定優先級」。我對Windows不太瞭解,所以我不能詳細說明。閱讀這篇文章的一些信息,它幫助了我:Network adapter card priority binding order in windows 7

不知道你是否遇到同樣的問題,因爲套接字錯誤10013似乎是權限相關。谷歌給我這個:dealing with socket error 10013

+0

謝謝,但沒有改變。 –