Готовый перевод 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
Настройки
Готово:
