使用套接字模块的Python服务器无法在两个不同位置的两个设备上工作

问题描述 投票:0回答:1

这是我第一个使用套接字的项目,不幸的是,这非常痛苦。我正在尝试创建一个简单的聊天室,但是,它仅在套接字 IP 为本地(例如 127.0.0.1)时才有效。但是,当我尝试连接到我的本地 IP 时,它不起作用。我什至让我的朋友在我运行服务器的同时运行客户端,而在他这边,客户端冻结了一段时间,直到崩溃。我正在使用的端口已转发,并且防火墙限制已得到处理。数字是 31400,所以这也不是问题。这是来自服务器的一些代码:

connection_file = open("connection.sav", "r")
connection_info = connection_file.readlines()
IP = "127.0.0.1"
PORT = int(connection_info[1][0:-1])
connection_file.close()

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server_socket.bind((IP, PORT))
server_socket.listen()

端口读取也不是问题,因为整数打印出我在测试时正在寻找的确切数字。可能是什么问题? 注意:服务器连接到“127.0.0.1”,而客户端连接到我的公共IP。

我尝试设置另一个端口(31401)并尝试将服务器和客户端连接到该端口,但这也不起作用。我尝试将客户端发送给我的朋友并让他连接,但也不起作用。我尝试将服务器连接到我的公共 IP 和端口,但这只会导致服务器崩溃。服务器正在正确侦听“127.0.0.1”,但客户端无法连接到公共 IP。我看过很多帖子,但似乎都没有这个具体问题。

python sockets server connection client
1个回答
0
投票

以下帖子帮助我认识到了错误:

Python 无法使用套接字绑定我的外部/公共 IP 地址,给出错误但是当使用本地 IP 地址时,错误不会显示 我通过将服务器连接到我的计算机的 IP(而不是普通的“127.0.0.1”)并将客户端连接到我的公共 IP 来解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.