1

如何创建套接字服务器,并从另一个网络\国家访问它?我使用java创建了一个服务器。我想从另一个网络连接服务器(比如酒店的 wi-fi)

我怎样才能做到这一点?

我的python服务器:

def start():
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind((socket.gethostname(), 2201))


    print("Waiting for connection...\n")

    while True:
        server.listen()
        (client, (ipNum, portNum)) = server.accept()

        message = str(client.recv(32).decode())

        if(message != ""):
            print("Client: " + message)

            Command(message.lower())

            print("Server: " + BackMessage)

        else:
            time.sleep(0.05)
start() # Start the server

Python客户端:

import socket

HOST = '127.0.0.1'  # The server's hostname or IP address
PORT = 2001 # The port used by the server

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    s.sendall(b'Hello, world')
    data = s.recv(1024)

print('Received', repr(data))

仅当我与服务器位于同一网络时才切换连接时它不起作用。我怎样才能让它工作?

4

1 回答 1

0

我的声誉不足以添加评论,所以我在这里放了一个答案。

如果服务器位于局域网中,则无法找到另一个局域网中的客户端。

您应该将服务器放在 WAN(广域网)或使用 NAT(网络地址转换)+ nat 遍历。

于 2021-08-08T00:59:39.333 回答