我尝试用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行,in co_serv.connect((adresse,9000)) socket.error:[Errno 10061]无法建立连接,因为目标计算机主动拒绝它
答案 0 :(得分:0)
您没有使用实际的计算机IP。您正在使用公共 IP地址。
打开cmd / command.com并输入命令:ipconfig
。
您将看到完全不同的IP( IPv4 / IPv6地址):
最有可能你想要这个(为自己做这个!):
然后,如果您希望网络外的人想要访问您的计算机,您必须将端口转发到路由器的网络IP地址。
如果您只是尝试使用python,最好使用127.0.0.1
或localhost
作为IP地址。