Як я розумію, це відбувається, коли клієнт робить запит на з'єднання:
- Сервер буде прив’язаний до певного номера порту. Номер порту завжди пов'язаний з процесом прослуховування. Оскільки тільки сервер прослуховує вхідні з'єднання, нам не потрібно зв'язуватись на стороні клієнта
- Сервер буде постійно слухати цей номер порту.
- Клієнт надішле
connect()запит. - Сервер прийме запит, використовуючи
accept(). Як тільки сервер приймає клієнтський запит, ядро виділяє для сервера випадковий номер порту для подальшогоsend()іreceive(), оскільки той самий номер порту на сервері не може використовуватися як для надсилання, так і для прослуховування, і попередній порт все ще прослуховування нових з'єднань
Враховуючи все це, як сервер дізнається, який порт отримує клієнт? Я знаю, що клієнт надсилатиме сегменти TCP з портом джерела та портом призначення, тому сервер буде використовувати вихідний порт цього сегмента як порт призначення, але яку функцію викликає сервер, щоб дізнатися про цей порт? Це accept()?
