Python客户端/服务器代码 - 无法通过以太网在两台机器之间进行连接

时间:2014-03-19 16:12:54

标签: python-2.7 client

我正在尝试使用以太网电缆从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()

1 个答案:

答案 0 :(得分:-1)

我的英文写得不好,但我试试。请尝试以下方法: 在服务器代码中 - > s.bind(('',PORT)),从而允许您从任何IP接收连接。 运气