我正在嘗試使用帶有套接字的 Python 制作一個簡單的應用程序,但如果客戶端在 LAN 中,它們只會收到從服務器發送的消息“測試”。我試圖從我的筆記本電腦和我的 PC 上運行客戶端(服務器在我的 PC 上運行)。在這兩種情況下,我都收到了“測試”消息,但是當朋友嘗試連接時,他沒有收到消息。這是我的server.py:import sockets = 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 sockets = 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)感謝您花時間閱讀和閱讀本文:)(對不起,如果我的英語不好,我是法國人)
1 回答

至尊寶的傳說
TA貢獻1789條經驗 獲得超10個贊
我猜你的朋友在你的局域網之外:如果是這樣,你應該在路由器上打開/端口 7908 端口到服務器。在服務器 PC 防火墻上打開 7908 端口。
您的腳本以這種方式應該可以工作。
添加回答
舉報
0/150
提交
取消