Мне нужен класс / модуль / библиотека python, который может соединять 2 компьютера (скажем, clientA и clientB) в Интернете и отправлять строковые сообщения между clientA и ClientB. Я не против предоставить IP-адреса / порты или что-то еще в рамках программы clientA и clientB. Передаваемая строка также может быть жестко закодирована в одном из клиентов. ака. Мне не нужен интерфейс в данный момент для ввода строки. Отправленную строку также можно увидеть на терминале. Тем не менее, вот ограничения
- Я должен быть в состоянии сделать это через любую обычную сеть, подключенную к Интернету. Например, с компьютера в моем доме, подключенного через Wifi к маршрутизатору, а затем к Интернету. То же самое для клиента на другом конце
- Не нужно вносить никаких изменений в сеть, так как я хочу иметь возможность перенести эту программу на моем компьютере в любую сеть
- Нет промежуточного компьютера / серверанеобходимо. Для разработки одного и того же clientA и clientB следует просто подключиться к Интернету, и любое сообщение не следует отправлять на промежуточный сервер.
Я знаю, что одноранговые сети, такие как торренты и т. Д., Делают это сфайлы. но не смогли выяснить, каким образом компьютер в подсети, такой как 192.168.xx, может быть однозначно идентифицирован в Интернете.
Грубый шаблон может выглядеть так:
class Client:
def __init__(self):
self.ipaddress="xxxx"
self.port="yyyy"
self.otherConfig1="aaaa"
self.otherConfig2="bbbb"
def messageReceived(message:str):
print(f"The message is {message}")
def messageSend(message:str):
#hardcoded identifier/ipaddress etc of other client
#code to send the message to that identifier
def main():
#infinite loop
#send a string message every 10 seconds(for testing)
# keep checking if as message is received
if __name__== "__main__" :
main()