Python跨主机Socket连接超时问题求助
Python跨主机Socket连接超时问题求助
我用Python的socket库写了两个简单的程序server.py和client.py,还把它们打包成了server.exe和client.exe。当我在同一台电脑上运行这两个程序时一切正常,但把它们放到两台不同的电脑上时,客户端怎么都连不上另一台电脑上的服务器。
这是我的代码:
服务端代码
import socket server = socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 使用本机IPv4在9000端口启动服务,并打印出来 ip = socket.gethostbyname(socket.gethostname()) server.bind((ip,9000)) server.listen(1) print(f"The server ipv4 , give it to client to connect to the server -> {ip}") print("Waiting for client ...") client_socket = server.accept()[0] client_socket.send(b"hello") client_socket.close() server.close() print("Done !!")
客户端代码
import socket server_ip = input("Please enter server ipv4 here : ") client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) client.connect((server_ip,9000)) # 接收服务器发送的数据(b"hello") Print(client.recv(5).decode('utf-8')) client.close() print("Done !!")
这两段代码本身没有其他异常,只有当我尝试跨电脑连接时,客户端会抛出连接超时的异常。
我查了很多资料,也看了不少做同样Socket测试项目的视频,别人都能正常运行,但到我这儿就不行了😢。我已经在两台电脑上都把客户端和服务器程序加入了防火墙允许列表,甚至直接关掉了防火墙,结果还是一样的连接超时。
我还在运行服务器的电脑上用命令提示符执行了netstat -a,能看到服务器的Socket确实在监听9000端口。
试了各种方法都没用,真心求各位大佬帮忙看看问题出在哪!
备注:内容来源于stack exchange,提问作者International programmer
相关产品推荐
相关产品推荐

