我有一个小的单面消息发送器,当我在代码中指定要连接的IP时工作,但是,我无法允许套接字接受来自任何IP的连接。这就是问题所在的界限。
mySocket = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
mySocket.bind ( ( '', 2727 ) )
''
适用于localhost,如果我手动输入IP,例如'192.168.1.106'
,它就可以工作,但是,我怎样才能让它对所有人开放?或者我使用错误的连接类型?
答案 0 :(得分:35)
如果要绑定到所有可用的IPv4地址,请指定0.0.0.0
作为您的IP地址。如果您位于路由器后面并希望您的套接字可以访问Internet,而不是仅在LAN上可用,则需要设置端口转发规则,以便LAN外的用户可以访问该服务。
答案 1 :(得分:13)
绑定到''
与'0.0.0.0'
具有相同的效果,可以更轻松地过渡到IPv6。
根据操作系统的不同,打开socket.AF_INET6
套接字会侦听IPv4和IPv6。
答案 2 :(得分:4)
绑定到0.0.0.0将允许它接受来自可以路由到它的任何IPv4地址的连接。