Задать вопрос
@JORIKUSS

Как настроить соединение двух ПК(библиотека socket)?

Написал что-то типо чата с использованием библиотеки socket. Есть два файла server и client. У себя запустил server, а друга попросил запустить файл client. Но ничего не происходит. Проверял на ПК и ноутбуке, все работало. Думаю из-за того, что ПК и ноутбук находятся в одной сети wifi. Подскажите, пожалуйста, можно ли это как-то заставить работать без единой сети wifi?
Файл server:
import socket

ip='мой ipv4'

sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.bind((ip,8080))
sock.listen(5)

conn,addr=sock.accept()
print('connected ',addr)
conn.send('You are connected'.encode('utf-8'))

while True:
	data=conn.recv(1024)
	print(data.decode('utf-8'))
	conn.send(input('...').encode('utf-8'))

Файл client:
import socket

ip='мой ipv4'

sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect((ip,8080))

while True:
	data=sock.recv(1024)
	print(data.decode('utf-8'))
	sock.send(input('...').encode('utf-8'))
  • Вопрос задан
  • 227 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
У сервера должен быть внешний (белый) IP, либо непосредственно, либо через настроенный NAT (т.е. внешний IP достаётся роутеру, а тот уже пробрасывает подключения снаружи куда надо).
Если сервер за NAT, пробить его уже не вполне тривиально, хотя и возможно. Но может потребоваться сервер-посредник, у которого белый IP есть.
Есть вариант "попросить вежливо" по UPnP, но опять же сработает со своим роутером - но не с провайдерским железом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы