库套接字:开放端口

时间:2015-05-16 09:07:36

标签: python sockets port

我尝试用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]无法建立连接,因为目标计算机主动拒绝它

1 个答案:

答案 0 :(得分:0)

您没有使用实际的计算机IP。您正在使用公共 IP地址。

打开cmd / command.com并输入命令:ipconfig

您将看到完全不同的IP( IPv4 / IPv6地址):

enter image description here

最有可能你想要这个(为自己做这个!): enter image description here

然后,如果您希望网络外的人想要访问您的计算机,您必须将端口转发到路由器的网络IP地址。

如果您只是尝试使用python,最好使用127.0.0.1localhost作为IP地址。