Сокет с Python

#python #sockets

Вопрос:

Я прочитал кое-какую документацию по сокетам и посмотрел несколько видеороликов на эту тему, я попытался подключить сокеты. Сначала я попробовал это с помощью своего внутреннего IP-адреса, запустил его на разных конечных точках, и все сработало. Я попробовал это с моим внешним IP-адресом, и это не удалось, я попытался запустить одно и то же приложение на разных устройствах, я запустил server.py на моем компьютере, и я запустил client.py на моем мобильном телефоне. Сообщение об ошибке не появилось, но соединение не запустилось.

Код сервера:

 import socket  s = socket.socket()  print("Socket successfully created")  port = 12345 s.bind(('Meu IP', port)) print("socket binded to %s" %(port))  s.listen(5) print ("socket is listening")  while True:   c, addr = s.accept()  print('Got connection from', addr )  c.send('Thank you for connecting'.encode())   c.close()  

Код клиента:

 # Import socket module import socket  s = socket.socket()  port = 12345  s.connect(('IP', port))  print (s.recv(1024).decode()) s.close()  

Я думаю, что проблема в IP-адресе, я думаю, что мне следует указать действительный внешний IP-адрес вместо внутреннего IP-адреса, но я не знаю, как это сделать, потому что, когда я пытаюсь это сделать, появляется ошибка. Мне просто нужно знать, как создать сокет между двумя машинами в разных сетях. Я долго искал решение этой проблемы. Если кто-нибудь из вас может мне помочь, я ценю это.

Комментарии:

1. Вам понадобится IP-адрес, доступный во всем мире. Ваш местный интернет-провайдер не позволит вам этого сделать, поэтому вам придется размещать на облачных платформах, где они позволят вам делать то, о чем вы думаете, и предоставят вам IP-адрес, доступный из любого места.