1

ソケットを使用して基本的なサーバー/クライアント スクリプトを作成しました。LAN ではすべて正常に動作しますが、LAN にないクライアントに接続しようとすると動作しません。これらのポートもポート転送しました

これはサーバーです

###SERVER####


def ChatConnection():
    print('Waiting for a connection...\n')
    SOCKET = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    SOCKET.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
    HOST = ''
    PORT = 8989
    SOCKET.bind((HOST, PORT))
    SOCKET.listen(1)
    CONN, ADDR = SOCKET.accept()
    print('You can now chat')
    while True:
        MSG = str(input('\n[YOU]> '))
        while not MSG: MSG = str(input('\n[YOU]> '))
        CONN.send(MSG.encode())
        print('\nAwaiting reply...')
        REPLY = CONN.recv(4096).decode()
CONN.close()

これはクライアントです

###CLIENT###



def ChatConnection():
    print('Waiting for a connection...\n')
    while True:
        try:
            HOST = SERVER EXTERNAL IP
            PORT = 8989
            SOCKET = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
            SOCKET.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
            SOCKET.connect((HOST, PORT))
            print('You can now chat with server')
            print('\nWaiting for server...')
            while True:
                REPLY = SOCKET.recv(4096)
                print('\n[USER]> %s'%REPLY.decode())
                MSG = str(input('\n[YOU]> '))
                while not MSG: MSG = str(input('\n[YOU]> '))
                SOCKET.send(MSG.encode())
                print('\nAwaiting reply...')
            SOCKET.close()
    except Exception: pass

これが WAN で機能するようにするには、どうすればよいですか?

4

1 に答える 1