Python服务器只能在本地wifi上工作

2024-04-26 14:07:13 发布

您现在位置:Python中文网/ 问答频道 /正文

代码:

import socket, threading

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server.bind(("my ipv4 from ipconfig", 12))

server.listen(5)

def client_handler(client_socket):
    request = client_socket.recv(100)

    print "[*] Received: " + request

    client_socket.close()

while True:
    client, addr = server.accept()
    print "[*] Accepted connection from: %s:%d" % (addr[0], addr[1])
    servert = threading.Thread(target=client_handler, args=(client,))
    servert.start()

所以服务器在本地似乎可以正常工作,但是如果我让我的朋友在另一个网络上连接,它就无法连接。我尝试从路由器进行端口转发 http://i.stack.imgur.com/wSUir.png(不能发布img显然会引起我的声誉<;10)

我也尝试过使用whatismyip网站上的ip,但是我得到了错误:

error: [Errno 10049] The requested address is not valid in its context

我能做些什么让其他人联系起来吗?谢谢。在


Tags: 代码fromimportclientserverrequestsockethandler
1条回答
网友
1楼 · 发布于 2024-04-26 14:07:13

当您试图从局域网外部访问服务器时,在创建套接字对象时,应该使用0.0.0.0作为IP地址。0.0.0.0通常表示默认路由(除了本地网络中的路由等之外,到internet“其他部分”的路由)。如果您使用DCHP分配的IP地址(在您的情况下是路由器),连接到网络(路由器)的设备只知道您的IP地址是您在$ifconfig命令中获得的,这是一个客户端不知道的私有IP地址

相关问题 更多 >