使用python s连接到raspberrypi时出错

2024-04-19 17:00:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图通过网络连接到我的覆盆子皮。 我在raspi上运行python作为服务器。 下面是我从网上得到的简单服务器代码:

import socket

serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = socket.gethostname()
port = 80
print (host)
print (port)
serversocket.bind((host, port))

serversocket.listen(5)
print ('server started and listening')
while 1:
    (clientsocket, address) = serversocket.accept()
    print ("connection found!")
    data = clientsocket.recv(1024).decode()
    print (data)
    clientsocket.send("data is sent".encode())

测试客户端代码:

import socket

s = socket.socket()
host = "192.168.1.247"
port = 80
s.connect((host,port))
s.send('randomData'.encode())
data = ''
data = s.recv(1024).decode()
print (data)
s.close

我已经在其他电脑上测试过了,这些效果很好。 当raspi是客户机而另一台计算机是服务器时,它可以正常工作。但是, 当raspi是服务器而另一台计算机是客户机时,我总是得到相同的错误: “由于目标计算机主动拒绝,无法建立连接”

尝试使用c#连接:

TcpClient client = new TcpClient("192.168.1.247", 80)

抛出错误:"No connection could be made because the target machine actively refused it"

注: -raspi作为客户端,raspi作为服务器,工作正常。 -我做了一些研究,似乎最常见的原因是防火墙或坏路由器。 --我不认为它是路由器,因为我可以做一个刺耳的其他电脑就好。 --我使用的是Raspbian的“喘息”Debian发行版,我认为它没有防火墙。

任何帮助都将不胜感激。 谢谢!


Tags: 代码import服务器hostdataport计算机socket