Для TCP-клиента:
Используйте gethostbyname для поиска DNS-имени по IP, он вернет структуру hostent. Давайте назовем это возвращаемое значение хостом.
hostent *host = gethostbyname(HOSTNAME_CSTR);
Заполните структуру адреса сокета:
sockaddr_in sock;
sock.sin_family = AF_INET;
sock.sin_port = htons(REMOTE_PORT);
sock.sin_addr.s_addr = ((struct in_addr *)(host->h_addr))->s_addr;
Создайте сокет и вызовите connect:
s = socket(AF_INET, SOCK_STREAM, 0);
connect(s, (struct sockaddr *)&sock, sizeof(sock))
Для стороны сервера TCP:
Настройка сокета
Свяжите свой адрес с этим сокетом, используя bind.
Начните слушать на этом сокете с прослушивания
Позвоните, чтобы принять подключенного клиента. <- в этот момент вы создаете новый поток для обработки соединения, в то время как вы делаете еще один вызов для подтверждения получения следующего подключенного клиента. </p>
Общая информация:
Используйте send и recv для чтения и записи между клиентом и сервером.
Пример исходного кода сокетов BSD:
Хороший пример кода вы можете найти в wikipedia .
Далее:
Я настоятельно рекомендую эту книгу и этот онлайн-учебник :
![alt text](https://i.stack.imgur.com/CIP1b.jpg)
4 :