Эффективное программирование TCP-IP


         

Заполняем структуру sockaddr_in, записывая


12- 20 Заполняем структуру sockaddr_in, записывая в ее поля известные адресе и номер порта, получаем сокет типа SOCK_STREAM, который и будет прослушивающим.

Привязка известного порта и вызов listen

21-32 Привязываем известные порт и адрес, записанные в структуру local, к полученному сокету. Затем вызываем listen, чтобы пометить сокет как прослушивающий.

Принятие соединения

33-39 Вызываем accept для приема новых соединений. Вызов accept блокирует выполнение программы до тех пор, пока не поступит запрос на соединение, после чего возвращает новый сокет для этого соединения.

Обмен данными

39-49 Сначала читаем и печатаем байт со значением 1, полученный от клиента. Затем посылаем один байт со значением 2 назад клиенту и завершаем программу.

Теперь можно протестировать клиент и сервер, запустив сервер в одном окне, а клиент - в другом. Обратите внимание, что сервер должен быть запущен первым, иначе клиент аварийно завершится с сообщением Connection refused (В соединении отказано).

 

bsd: $ simplec

ошибка вызова connect: Connection refused

bsd: $

Ошибка произошла потому, что при попытке клиента установить соединение не было сервера, прослушивающего порт 7500.

Теперь следует поступить правильно, то есть запустить сервер до запуска клиента:











bsd: $ simples

1

bsd: $



bsd: $ simplec

2

bsd: $




Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий