如何在python中自动端口转发

问题描述 投票:0回答:1

我在互联网上进行了搜索,没有直接的方法可以做到这一点(有可能吗?)。我有一个使用 python 套接字运行的简单应用程序和一个也在套接字上运行的服务器应用程序,在本地网络上工作。

我想要的是客户端应用程序能够运行并连接到服务器,无论它在什么设备上运行,它都是一个Python游戏,所以如果有其他方法可以制作Python游戏(使用pygame)多人游戏请告诉。

python sockets network-programming multiplayer portforwarding
1个回答
-1
投票

我认为你想通过互联网运行你的套接字服务器。这是绝对有可能的。如果您有服务器,这里有一个简单的片段: 服务器:

import socket
import threading

HOST = '0.0.0.0'
PORT = 12345

def handle_client(conn, addr):
    print(f"Connected by {addr}")
    while True:
        data = conn.recv(1024)
        if not data:
            break
        conn.sendall(data)  # Echo back
    conn.close()

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()
    print("Server started...")
    while True:
        conn, addr = s.accept()
        thread = threading.Thread(target=handle_client, args=(conn, addr))
        thread.start()

客户:

import socket

HOST = 'your.server.ip.address'
PORT = 12345

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

print('Received', repr(data))

您可以通过以下方式获取您计算机的公网IP地址: 在 Mac、Linux 和 Windows 中:

curl checkip.amazonaws.com

curl ifconfig.me

curl checkip.amazonaws.com
© www.soinside.com 2019 - 2024. All rights reserved.