Что делает клиент?
Клиент
также как и сервер создает сокет такого
же типа и домена, может делать или не
делать bind,чтобы
указать адрес сокета. Наконец, он должен
с помощью connect()
connect(<номер
сокета>, <адрес сокета сервера>,
<длина буфера, который указан вторым
параметром>);
положить
запрос в очередь запросов. У connect()
три
параметра: номер сокета, адрес сокета
сервера, длина буфера, указанного вторым
параметром. После того, как connect()
закончил,
с помощью write()
отправляются
данные, указав при этом адрес сокета,
потом с помощью read()
читает
результаты, причем рид ждет,пока запрос
на сервере не будет обработан. После
того,как результат получен, чтобы
разорвать соединения мы должны вызвать
системный вызов close().
Задача:
написать
клиент-сервер на юниксовых сокетах. он
должен обрабатывать запросы: "дай
файл", отсылая в качестве данных для
запроса имя файла. Ответ от сервера -
содержимое файла, переданное на сторону
клиента. Клиент, получив файл, должен
выводить его на стандартный вывод. Надо
делать программу в предположении,что
файл целиком не помещается в оперативную
память. Программа должна уметь обрабатывать
двоичные данные. Проверка работоспособности:
сравнивается исходный файл и результирующий.
На
следующем занятии мы будем писать
программу на IP-сокетах.
Пример реализации сокетов:
http://osr507doc.sco.com/en/netguide/dusockT.code_samples.html