2017-04-11 57 views
0

我想在帶有加密狗BT和樹莓的筆記本電腦之間進行BT通信。它們都連接在PAN網絡上,因此它們都有一個IP地址。TimeoutError python socket

對於通信,我使用TCP套接字。在服務器部分,我可以創建我的套接字,直到accept方法。然後,我去我的RPI 3,我跑我的python腳本:

import socket 

hote = "192.168.50.1" 
port = 1000 

socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
socket.connect((hote, port)) 
print("Connection on {}".format(port)) 
socket.close() 

但我總有幾分鐘後,這樣的輸出:

Traceback (most recent call last): 
    File "socketClient.py", line 7, in <module> 
    socket.connect((hote, port)) 
TimeoutError: [Errno 110] Connection timed out 

我不知道爲什麼......你有沒有一個主意 ?我在我的筆記本電腦上試過命令telnet addr_ip port,併成功與服務器連接。

回答

1

這是一個防火牆的問題,因爲他擋住了入口connection.I意識到那裏,當我顛倒了角色。我把服務器代碼放在我的筆記本電腦上的RPI和客戶端代碼上,它工作正常。

+0

將您的答案標記爲已選中,以便其他人佳能測試您的解決方案即時通訊:) –

+0

我不能等待2天,因爲這是我的帖子... –

+0

Okey,然後只記得它:) –

0

首先,你是否綁定了socket?其次,你是否正在傾聽IP和端口?

正常的方法創建套接字連接是:

服務器端:

  1. 創建一個Socket
  2. 綁定套接字到specyfic接口和端口
  3. 讓插座聽。在一個循環
  4. ,嘗試接受插座
  5. 連接處理連接

客戶端:

  1. 創建client_socket
  2. 嘗試連接到服務器套接字。

關於網絡編程中一些Python信息: herehere

+0

我讀了很多關於這個主題的網站..所以,一切都完成了。 –