logo
Ответы к экзамену по ПСП

Структура программы tcp-клиента.

Первые блоки обеих программ идентичны и предназначены для инициализации библиотеки WS2_32.DLL.

Второй блок сервера имеет то же предназначение, что и в предыдущем случае. Единственным отличием является значение SOCK_STREEMпараметра функцииsocket, указывающий, что сокет будет использоваться для соединения (сокет ориентированный на поток).

В третьем блоке программы сервера выполняются две функции Winsock2:listenиaccept. Функцияlistenпереводит сокет, ориентированный на поток, в состояния прослушивания (открывает доступ к сокету) и задает некоторые параметры очереди соединений. Функцияacceptпереводит процесс сервера в состояние ожидания, до момента пока программа клиента не выполнит функциюconnect(подключится к сокету). Если на стороне клиента корректно выполнена функцияconnect, то функцияacceptвозвращает новый сокет (с эфемерным портом), который предназначен для обмена данными с подключившимся клиентом. Кроме того, автоматически заполняется структураSOCKADDR_INпараметрами сокета клиента.

Четвертый и пятый блоки программы сервера предназначены для обмена данными по созданному соединению. Следует обратить внимание, что, во-первых, используются функции sendиrecv, а во-вторых, в качестве параметра эти функции используют сокет, созданный командойaccept.

В программе клиента осталось пояснить, только работу третьего блока. В этом блоке выполняется функция connect, предназначенная для установки соединения с сокетом сервера. Функция в качестве параметров имеет, созданный в предыдущем блоке, дескриптор сокета (ориентированного на поток) и структуруSOCKADDR_INс параметрами сокета сервера.

  1. Yandex.RTB R-A-252273-3
    Yandex.RTB R-A-252273-4