Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FAQ по лекциям.doc
Скачиваний:
42
Добавлен:
31.03.2015
Размер:
483.33 Кб
Скачать

2.4. Этапы организации соединения сокетов.

  1. Создание сервером слушающего сокета с заданным номером порта (функция Create(n_port),IPадрес присваивается сам) и запуск его на прослушивание среды (функция Listen());

  2. Создание клиентом сокета для соединения с сервером (функция Create(), номер порта не важен) и отправка запроса на подключение к сокету сервера Connect(m_ipaddr, m_port);

  3. При приеме такого запроса (событие OnAccept) сервер выделяет клиенту сокет для организации соединения (методAcceptдля выделяемого сокета).

Если у сервера не осталось свободных сокетов для подключения очередного клиента, то необходимо организовать соединение с фиктивным сокетом для продвижения очереди запросов, после чего сразу же его разорвать.

2.5. Организация сетевого соединения со стороны клиента.

Для организации соединения с сервером клиент создает сокет (функция Create(), номер порта не важен) и отправляет запрос на подключение к сокету сервера Connect(m_ipaddr, m_port). При завершении попытки вызывается событие OnConnect(ErrCode). При установке соединенияErrCode= 0.

2.6. Организация сетевого соединения со стороны сервера.

Для организации сетевого соединения сервер создает слушающий сокета с заданным номером порта (функция Create(n_port),IPадрес присваивается сам) и запускает его на прослушивание среды (функция Listen());

При приеме от клиента запроса на подключение (событие OnAccept) сервер выделяет клиенту сокет для организации соединения (методAcceptдля выделяемого сокета).

2.7. Особенности программирования приложения-клиента.

Приложение клиент должно имеет один сокет для установления соединения с сервером.

2.8. Особенности программирования приложения-сервера.

В программе-сервер закладывается способность ожидать появления запроса от клиента на определенном порту. Для этого используется отдельный сокет. Для установления соединения с каждым клиентом сервер выделяет один сокет.

2.9. Сокеты. Понятие гнездового соединения.

Каждый процесс может создать слушающий сокет и привязать его к какому-нибудь порту компьютера. Слушающий процесс обычно находится в цикле ожидания, то есть просыпается при появлении нового соединения. При этом сохраняется возможность просто проверить наличие соединений на данный момент, установить тайм-аут для операции и так далее.

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

Зам.Такое соединение точка-точка между 2 сокетами по всей видимости называется гнездовым.

Источник:

http://ru.wikipedia.org/wiki/Сокет_(программный_интерфейс)

2.10. Сокеты, как средство межпрограммного взаимодействия.

Сокетом (от англ. socket - гнездо, розетка) называется специальный объект, создаваемый для отправки и получения данных через сеть. Этот объект создаётся внутри библиотеки сокетов, а программист, использующий эту библиотеку, получает уникальный номер (дескриптор) этого сокета. Конкретное значение этого дескриптора не несёт для программиста никакой полезной информации и может быть использовано только для того, чтобы при вызове функции из библиотеки сокетов указать, с каким сокетом требуется выполнить операцию.

Чтобы две программы могли общаться друг с другом через сеть, каждая из них должна создать сокет. Каждый сокет обладает двумя основными характеристиками: протоколом и адресом, к которым он привязан. Протокол задаётся при создании сокета и не может быть изменён впоследствии. Адрес сокета задаётся позже, но обязательно до того, как через сокет пойдут данные. В некоторых случаях привязка сокета к адресу может быть неявной.

Каждый сокет имеет два буфера: для входящих и для исходящих данных. При отправке данных они сначала кладутся в буфер исходящих, и лишь затем отправляются в фоновом режиме. Программа в это время продолжает свою работу. При получении данных сокет кладёт их в буфер для входящих, откуда они затем могут извлекаться программой.

После организации соединения сокетов любое чтение или запись через файловый дескриптор одного из них будут на самом деле передавать данные между ним и парным ему сокетом другого приложения.

Источник:

Надергано из предыдущих вопросов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]