Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python socket ipv6 over network not working

I am trying to connect a server to a client in python with sockets. The problem is that with ipv6 binding, it works on my local network. What I want is to connect it to another network. These programs are written in Python 3

Here is the code of server.py:

import socket

HOST = someip
PORT = someport

server = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
server.bind((HOST, PORT))

server.listen()

Source code of client.py:

import socket
HOST = someip
PORT = someport

client = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
client.connect((HOST, PORT))

I think it is a port forwarding problem. I know the code does nothing right now, but I want to first establish the connection.

like image 244
yoyopi768 yoyopi768 Avatar asked Nov 15 '22 18:11

yoyopi768 yoyopi768


1 Answers

When the server receives a request, we need to put it in a loop to accept it. Like this

import socket

HOST = someip
PORT = someport

server = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
server.bind((HOST, PORT))
server.listen()
while True:
    try:
        conn, addr = server.accept()
        print(f"New request from {addr}")
    except KeyboardInterrupt:
        server.close()
like image 75
Sarsatra Avatar answered Dec 11 '22 04:12

Sarsatra