我正在尝试使用以太网电缆从Raspberry Pi向我的Windows笔记本电脑发送数据(传感器读数,因为它们已被拍摄),尽管我首先尝试成功连接这两台机器。
我创建了一个client.py代码和一个server.py代码。服务器正在Pi上运行,客户端正在我的笔记本电脑上运行。我还在Rasperry Pi(192.168.0.17)上设置了静态IP地址。当我在笔记本电脑上运行IPCONFIG时,笔记本电脑的以太网IP地址是192.168.0.16。
当我在raspberry pi上运行服务器和客户端代码(使用'localhost'而不是静态IP)连接成功并且我能够发送数据,但是当我尝试使用Pi的笔记本电脑进行通信时服务器代码中的静态IP,以及笔记本电脑上客户端代码中的相同静态IP地址,服务器侦听但从未从笔记本电脑接收连接,并且笔记本电脑上的客户端代码超时,并出现以下错误:
[Errno 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:'
服务器代码:
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()
答案 0 :(得分:-1)
我的英文写得不好,但我试试。请尝试以下方法: 在服务器代码中 - > s.bind(('',PORT)),从而允许您从任何IP接收连接。 运气