2014-03-19 65 views
1

我試圖從樹莓派的數據(傳感器讀數,因爲他們採取了)發送到使用以太網電纜將我的Windows筆記本電腦兩臺機器之間的連接,雖然第一次我只是試圖成功連接兩臺機器。Python客戶端/服務器端的代碼 - 不能夠通過以太網

我創建了一個client.py代碼和server.py代碼。服務器正在Pi上運行,客戶端正在我的筆記本電腦上運行。我還在Rasperry Pi(192.168.0.17)上設置了一個靜態IP地址。當我在筆記本電腦上運行IPCONFIG時,筆記本電腦的以太網IP地址是192.168.0.16。

當我同時運行在樹莓派的服務器和客戶端代碼(使用的「localhost」,而不是靜態IP)連接成功,我能夠發送數據,但是當我嘗試使用筆記本電腦的溝通PI的靜態IP的服務器代碼,並在筆記本電腦上的客戶端代碼相同的靜態IP地址,服務器監聽,但從來沒有收到從筆記本電腦上的筆記本電腦timesout,出現以下錯誤的連接,客戶端代碼:

[錯誤10060]連接嘗試失敗,因爲連接的方沒有正確一段時間後,因爲連接主機未能響應響應或已建立的連接失敗

這是我嘗試創建的第一個客戶端/服務器,因此我的知識非常有限,任何幫助都將不勝感激。下面貼出了當前表單中的代碼,謝謝。

客戶端代碼:

import socket 

TCP_IP = '192.168.0.17' 
TCP_PORT = 5005 
BUFFER_SIZE = 20 
MESSAGE = "Hello, World!" 

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
s.connect((TCP_IP, TCP_PORT)) 

for i in range(0,1000): 
    s.send(MESSAGE) 
    data = s.recv(BUFFER_SIZE) 
s.close() 

print 'received data:' 

Server代碼:

import socket 
from thread import * 

IP = "192.168.0.17" 

print IP 

PORT = input("Enter the PORT number (1 - 10,000)") #input same port number as client (5005) 

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) 

print "Socket created" 

s.bind((IP, PORT)) 

s.listen(10) 

print "sock now listening" 

while True: 
    connection, addr = s.accept() 
    print "conn established" 
    connection.send("Welcome to the server.") 
    while True: 
     data = connection.recv(1024) 
     if not data: 
      break 
     connection.sendall(data) 
     print data 
     connection.close() 
s.close() 
+1

不建議發表你的IP地址 –

回答

-1

我不要用英文寫的不好,但我儘量。請嘗試以下操作: 在服務器代碼 - > s.bind((「」,PORT)),從而使您可以從任何IP接收連接。 運氣

相關問題