Как подключиться к другому ПК через разные сети - PullRequest
0 голосов
/ 17 октября 2019

Когда я запускаю оба кода на моем ПК, они работают. Однако, когда я даю своему другу один из кодов для связи со мной, он не работает. Оба были в разных сетях.

Я пытался использовать свое имя хоста в обеих. Я также пытался использовать свой локальный IP-адрес.

Нижний код, который я использую

import os
import socket


s = socket.socket()
port = 8079


s.bind(("My_Host_Name",port))
print("Scanning income connections")

s.listen(1)
conn, addr = s.accept()


print("Connected to:",addr)


while 1:
    #Sender
    command = input(str("Me: "))
    command = command.encode()
    conn.send(command)
    print("")



    #Reciever 
    data = conn.recv(1024)
    data = data.decode()
    print("Anonymous: "+data)
    print("")

Нижний - тот, который я даю своему другу

import os
import socket


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

host = "My_Host_Name"
port = 8079



s.connect((host,port))

while 1:
    #Reciever
    data = s.recv(1024)
    data = data.decode()
    print("Anonymous: " + data)
    print("")


    #Sender
    command = input(str("Me: "))
    command = command.encode()
    s.send(command)
    print("")

Я ожидаю этогоподключиться через разные сети

1 Ответ

1 голос
/ 17 октября 2019

Для того, чтобы ваш друг подключился, вашему серверному приложению необходимо bind() на локальный IP-адрес локальной сети / порт компьютера, на котором он запущен, а затем вашему клиентскому приложению необходимо connect() на общедоступный IP-адрес глобальной сети /порт вашего сетевого маршрутизатора, а не IP-адрес / порт локальной сети сервера. Ваш маршрутизатор должен быть настроен на переадресацию соединений с IP-адреса WAN на IP-порт / порт сервера. Если ваш маршрутизатор поддерживает uPNP, вы можете настроить эту пересылку программно в коде вашего сервера, в противном случае вам придется настроить его вручную в интерфейсе администратора маршрутизатора.

...