Прочитал на геймдеве серию статей по сетевому программированию (только азы), как что устроено и кк работает. Всё понял, впринципе я как-то так это всё и представлял, но парочка вопросов всётаки появилось:...
1. Как правильно расположить "по старшинству" следующие понятия: порт физический (rj45), порт программный и сокет.
Как я представляю: Физический порт "имеет" 65000+ программных портов, а дальше... Сколько сокетов может быть вообще или их количество ограничено только uint long? 1 сокет можно биндить на 1 программный порт, но 1 программный порт может обслуживать больше чем 1 сoкет одновременно, или как?
2. Организация взаимодействия "клиент-сервер" tcp/ip... Сервер слушает порт через сокет А. Клиент посылает запрос. Сервер принимает пакет и создаёт новый сокет В для нового клиента и отвечает клиенту через него.
Собственно 3 момента:
2.1 На какой АДРЕС сервер отсылает пакет через сокет В, или это всё "привязывается" при создании сокета или как узнаётся?
2.2 Чтобы принять ответ сервера, клиент тоже должен слушать сокетом порт? Или сокет В изначально будет "нацелен" на порт клиента?
2.3 Когда клиент постоянно шлёт данные на сервер, то каждый пришедший пакет создаёт новый сокет? Не логично както. Или как клиенту узнать ид сервеного сокета В, созданного для этого клиента?
1. Как правильно расположить "по старшинству" следующие понятия: порт физический (rj45), порт программный и сокет.
Как я представляю: Физический порт "имеет" 65000+ программных портов, а дальше... Сколько сокетов может быть вообще или их количество ограничено только uint long? 1 сокет можно биндить на 1 программный порт, но 1 программный порт может обслуживать больше чем 1 сoкет одновременно, или как?
2. Организация взаимодействия "клиент-сервер" tcp/ip... Сервер слушает порт через сокет А. Клиент посылает запрос. Сервер принимает пакет и создаёт новый сокет В для нового клиента и отвечает клиенту через него.
Собственно 3 момента:
2.1 На какой АДРЕС сервер отсылает пакет через сокет В, или это всё "привязывается" при создании сокета или как узнаётся?
2.2 Чтобы принять ответ сервера, клиент тоже должен слушать сокетом порт? Или сокет В изначально будет "нацелен" на порт клиента?
2.3 Когда клиент постоянно шлёт данные на сервер, то каждый пришедший пакет создаёт новый сокет? Не логично както. Или как клиенту узнать ид сервеного сокета В, созданного для этого клиента?