【发布时间】:2015-05-16 09:07:35
【问题描述】:
我尝试用python创建一个小游戏,但遇到了一个问题。
只要我在本地工作(同一台计算机或私有 IP 地址)就没有问题,但如果我使用 IP,则套接字无法连接。
服务器:
import socket
co_prin = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
co_prin.bind(('', 9000))
co_prin.listen(10)
co,info=co_prin.accept()
print('connexion recu')
co.close()
co_prin.close()
客户:
import socket
co_serv=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
adresse='81.56.76.61'
co_serv.connect((adresse, 9000))
print("Connecté.")
co_serv.close()
如果我通过 'localhost' 更改地址没有问题。
有人告诉我原因是 python 无法打开端口。我想知道是否有解决方案可以解决或绕过其他用户易于使用的问题。 (我总是可以使用 hamachi 创建本地网络或手动打开端口,但共享我的程序并不容易)。
编辑,客户端代码中的错误:Traceback(最近一次调用最后一次): 文件“”,第 5 行,在 co_serv.connect((地址,9000)) socket.error: [Errno 10061] 无法建立连接,因为目标机器主动拒绝了它
【问题讨论】:
-
当您说“如果我使用 IP”时,您是指在客户端还是在服务器中?
-
您确定
81.56.76.61是正确的地址吗?这段代码对我有用。 -
我在客户端使用 IP。我在mon-ip.com 上得到它,我可以尝试在另一个网站上得到它。