Я создаю фиктивное P2P-приложение на C ++, и у меня есть концептуальные сомнения. (Я новичок в области сетевых технологий.)
Мой клиент A создает сокет и подключается к серверу. Приходит другой клиент B и запрашивает у сервера IP-адрес и порт клиента A. Теперь клиент B хочет открыть соединение напрямую с A. Я создаю другой поток в клиенте A, который хочет прослушивать входящие запросы на подключение. Пожалуйста, проверьте мое понимание по этим пунктам.
Дескриптор файла, который у меня есть после создания сокета в клиенте A для соединения с сервером, может использоваться только сервером для чтения / записи из него.
Запросы на подключение, которые Клиент B отправляет A, попадут в другую очередь, которая должна обрабатываться отдельно, и будут невидимы для соединения, которое уже имеется у клиента A. В основном это означает, что то, что входит в дескриптор файла, проходит через связанный порт, но то, что входит в порт, может не попасть в дескриптор файла. Только из правильного источника.
Клиент A Необходимо создать новый сокет, связанный с тем же портом и адресом, что и предыдущий, для обработки входящих запросов.
Бест,