#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-адрес, доступный из любого места.