在线 Python 套接字

我正在尝试使用带有套接字的 Python 制作一个简单的应用程序,但如果客户端在 LAN 中,它们只会收到从服务器发送的消息“测试”。我试图从我的笔记本电脑和我的 PC 上运行客户端(服务器在我的 PC 上运行)。在这两种情况下,我都收到了“测试”消息,但是当朋友尝试连接时,他没有收到消息。


这是我的server.py:


import socket


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind((socket.gethostname(), 7908))

s.listen(5)


while True:

    clientsocket, address = s.accept()

    print(f"Connection from {address} established")

    clientsocket.send(bytes("Test", "utf-8"))

这是我的client.py:


import socket


s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(("my_public_ip_address", 7908))


print(s.recv(8).decode("utf-8"))

我client.py在发送之前使用 pyinstaller 进行编译,这样脚本就可以在机器上不安装 Python 的情况下运行(我的笔记本电脑上什至没有 Python)


感谢您花时间阅读和阅读本文:)(对不起,如果我的英语不好,我是法国人)


MMMHUHU
浏览 75回答 1
1回答

至尊宝的传说

我猜你的朋友在你的局域网之外:如果是这样,你应该在路由器上打开/端口 7908 端口到服务器。在服务器 PC 防火墙上打开 7908 端口。您的脚本以这种方式应该可以工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python