Готовый перевод Michael J. Donahoo "TCP/IP Sockets in C, 2nd Edition" / Michael J. Donahoo "Программирование TCP/IP сокетов в Си, 2-ое издание": 2.5 Подсоединение сокета

Внимание! Этот перевод, возможно, ещё не готов, так как модераторы установили для него статус «перевод редактируется»

2.5 Подсоединение сокета

TCP сокет должен быть подключен к другому сокету, перед тем как между ними могут быть пересланы какие-либо данные.

В этом смысле использование TCP сокетов чем-то похоже на пользование телефонной сетью.

Перед тем как поговорить, вы должны набрать нужный телефона и потом должно быть установлено соединение; если соединение не установлено, то вы будете пробовать звонить позже.

Процесс установки соединения сильно отличается у клиента и сервера: Клиент инициирует соединение, в то время как сервер пассивно ждет, когда клиент подключится к нему. (Для получения дополнительной информации о процессе подключения и то, как он отражен в функциях API, смотрите в пункте 7.4.)

Для установки соединения с сервером мы вызываем функцию connect() для сокета.

int connect(int socket, const struct sockaddr *foreignAddress, socklen_t addressLength)

Первый аргумент - сокет - является дескриптором, созданным функцией socket(). foreignAddress - является указателем на структуру sockaddr, которая генерируется API сокетов; в нашем случае это всегда будет указатель либо на структуру sockaddr_in, либо на структуру sockaddr_in6, содержащую интернет адрес и порт сервера.

addressLength определяет длину адресной структуры, которую можно получить как sizeof(struct sockaddr_in) или sizeof(struct sockaddr_in6).

Когда функция connect() заканчивает свою работу, сокет переходит в состояние подключения и соединение готово к передаче данных при помощи вызовов функций send() и recv().

Внимание! Этот перевод, возможно, ещё не готов.
Его статус: перевод редактируется

Переведено на Нотабеноиде
http://notabenoid.org/book/29398/102492

Переводчики: victor8632, prefer211

Настройки

Готово:

100.00% КП = 1.0