Предыдущая | Оглавление | Следующая |
Связать сокет с IP-адресом и номером порта
#include <sys/types.h>
#include <sys/socket.h>
int bind(int sockfd, struct sockaddr *my_addr, socklen_t addrlen);
Когда удаленный компьютер хочет связаться с сервером, ему нужно знать IP-адрес и порт сервера. Вызов bind() позволяет тебе указать эти две вещи.
Сначала вызываешь socket() для создания дескриптора, потом заполняешь struct sockaddr_in IP-адресом и номером порта, передаешь все это в bind(), и IP-адрес и порт связываются с сокетом!
Если ты не знаешь свой IP-адрес, или на машине только один IP-адрес, или все равно, какой IP-адрес будет использоваться, можно записать INADDR_ANY в поле s_addr структуры struct sockaddr_in и система сама выберет подходящий IP-адрес.
Параметр addrlen должен быть равен sizeof(my_addr).
Возвращает ноль при успехе, -1 при ошибке, сохраняя ее номер в errno.
struct sockaddr_in myaddr; int s; myaddr.sin_family = AF_INET; myaddr.sin_port = htons(3490); // нужно указать IP-адрес: inet_aton("63.161.169.137", &myaddr.sin_addr.s_addr); // или автоматически выбрать: myaddr.sin_addr.s_addr = INADDR_ANY; s = socket(PF_INET, SOCK_STREAM, 0); bind(s, (struct sockaddr*)myaddr, sizeof(myaddr)); |
Предыдущая | Оглавление | Следующая |