我一直在 sentdex 的帮助下自学python套接字模块。当我尝试运行代码时,没有错误。代码是:
`import socket
from _thread import *
host = 'localhost'
port = 5555
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.bind((host, port))
except socket.error as e:
print(str(e))
s.listen(5)
print('Waiting for a connection.')
def threaded_client(conn):
conn.send(str.encode('Welcome, type your info\n'))
while True:
data = conn.recv(2048)
reply = 'Server output: '+ data.decode('utf-8')
if not data:
break
conn.sendall(str.encode(reply))
conn.close()
while True:
conn, addr = s.accept()
print('connected to: '+addr[0]+':'+str(addr[1]))
start_new_thread(threaded_client,(conn,))
`
当我尝试在树莓派上连接到它时,出现错误:
telnet: Unable to connect to remote host: Connection refused
我尝试将主机修改为在其他问题(例如host=''
,host=127.0.0.1
和host=0.0.0.0
)中读到的众多不同选项。都无济于事;但是,当我在运行脚本的计算机上尝试host='localhost'
时,它确实建立了连接。当我尝试从树莓派3 ping它时,它什么也没做。最初,它似乎可以正常工作,但是经过一段时间没有任何变化,当我取消它时,树莓派显示没有收到任何包装。请告诉我可能是什么问题。可以是基于语法的还是基于防火墙的?
答案 0 :(得分:0)
我发现了我的错误:我一直在尝试连接到路由器的IP,而不是计算机(正在运行套接字服务器的计算机)的IP。抱歉打扰了。