Информация об изменениях

Сообщение р2р tcp core 3.1 - 2 вопроса от 03.11.2020 17:47

Изменено 03.11.2020 17:49 Barbar1an

р2р tcp core 3.1 - 2 вопроса
пишу небольшую р2р сеть

1. так как это р2р, то ноды должны асинхронно общаться друг с другом(инициатор может быть на любом конце)
но я не понял как это сделать с односторонним соединением, писать и читать там конечно можно в оба направления, но как достичь синхронизации не ясно и наврено нереально или я чего-то не знаю (чтобы один не начал писать свой запрос когда другой ждет от него ответ)
поэтому на любое входящее соединеие создаю ответное, это правильно?


2.
этот подход работает локально и по локальной сети, а по инету чето не работает, удаленный узел может подключить к моей тачке а мой к нему не может — почему?

CORE 3.1

слушаю так:

Listener = new TcpListener(IPAddress.Any, Port);
Listener.Start();


подключаюсь так:
var client = new TcpClient(); // вопрос 2а: есть такой конструктор — new TcpClient(addr) — который выглядит бесполезным потому что никуда не конктится и вообще не соотв-ет документации — что это за хрень?
client.Connect(addr);
р2р tcp core 3.1 - 2 вопроса
пишу небольшую р2р сеть

1. так как это р2р, то ноды должны асинхронно общаться друг с другом(инициатор может быть на любом конце)
но я не понял как это сделать с односторонним соединением, писать и читать там конечно можно в оба направления, но как достичь синхронизации не ясно и наврено нереально или я чего-то не знаю (чтобы один не начал писать свой запрос когда другой ждет от него ответ)
поэтому на любое входящее соединеие создаю ответное, это правильно?


2.
этот подход работает локально и по локальной сети, а по инету чето не работает, удаленный узел может подключиться к моей рабочей тачке, а мой к удаленному — не может — почему?
порты проброшены файрволы выключены

CORE 3.1

слушаю так:

Listener = new TcpListener(IPAddress.Any, Port);
Listener.Start();


подключаюсь так:
var client = new TcpClient(); // вопрос 2а: есть такой конструктор — new TcpClient(addr) — который выглядит бесполезным потому что никуда не конктится и вообще не соотв-ет документации — что это за хрень?
client.Connect(addr);