Articles of сокеты

Клиенты Telnet и их обработка EOL

Это довольно запутанный вопрос, и для этого я извиняюсь. Я написал приложение сокетов Linux C, базовую структуру для упрощенного чат-сервера. Сервер работает на моем ноутбуке. Клиент является Telnet в настоящий момент, пока я не напишу назначенное клиентское приложение (это будет более безопасно, надеюсь). Я знаю, что есть лучшие приложения для отправки общих сетевых данных с […]

select () не позволяет printf () без “\ n” в конце

У меня проблема с select (): она действует странно в моей программе, и я не могу понять почему. #include #include int main() { char msg[1024]; fd_set readfds; int stdi=fileno(stdin); FD_SET(stdi, &readfds); for (;;) { printf(“Input: “); select(stdi+1, &readfds, NULL, NULL, NULL); if (FD_ISSET(stdi, &readfds)) { scanf(“%s”,msg); printf(“OK\n”); } } } Какое поведение программы вы ожидаете? […]

В каких ситуациях на стороне клиента требуется bind ()?

Я изучаю программирование сокетов. Когда вы будете использовать bind () на стороне клиента? Какие типы программ ему понадобятся и почему? Где я могу найти пример?

Отправлять буфер из Socket в Linux?

Есть ли способ проверить, является ли буфер отправки TCP-соединения полностью пустым? Я до сих пор ничего не нашел и просто хочу убедиться, что мой сервер не закрыт, пока все еще данные передаются определенному клиенту. Я использую опрос, чтобы проверить, могу ли я отправлять данные в неблокирующий сокет. Но этим я не могу узнать, было ли […]

Отправлять и получать целочисленное значение по TCP в C

В программе мне нужно отправить целочисленное значение через сокет TCP. Я использовал функции send() и recv() для этой цели, но они отправляют и принимают его только как строку. Есть ли альтернатива для send() и recv() для отправки и получения целочисленных значений?

С C сокетами TCP можно «отправить» возврат ноль?

Возможно ли, send функция send C возвращала ноль при использовании сокетов TCP? На странице руководства говорится, что он вернет количество отправленных байтов, но я не уверен, что он просто вернет -1, когда он не сможет отправить какие-либо данные.

неблокирующий сокет выбирает 1 после подключения

Прежде всего, я хотел бы сказать, что это еще одна проблема, чем эта: похоже, но не то же самое Мой код выглядит так: struct addrinfo hints, *res; struct sockaddr* serveraddr; memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_INET; hints.ai_socktype = SOCK_STREAM; int res2 = getaddrinfo(ip, port, &hints, &res); printf(“getaddrinfo() res: %d, %d\n”, res2, errno); serveraddr = res->ai_addr; […]

Получение данных от Java-Client (данные содержат int, short, string)

Я искал часы, чтобы получить ответ о моем вопросе, но ничего не нашел. Может быть, я помогу здесь. То, что я пытаюсь сделать: Java-клиент отправляет сообщение на C-сервер. Сообщение содержит различные типы, такие как integer, short и также строку (например, message = int: total_msg_length; short: operation; string: hello -> total_msg-length = 4 (размер целого), операция […]

Разница между заголовком и контентом ответа HTTP-сервера (сокетов)

я хочу знать, есть ли возможность узнать, где в ответе Stream заголовок заканчивается? Предыстория вопроса заключается в следующем: я использую сокеты в c для получения контента с веб-сайта, содержимое кодируется в gzip. Я хотел бы прочитать содержимое напрямую из streamа и закодировать содержимое gzip с помощью zlib. Но как я знаю, что началось gzip-контент, и […]

Каков правильный способ преобразования struct sockaddr * в struct sockaddr_in6 * с допустимым кодом C?

Вот простая программа, которая показывает, как мы обычно struct sockaddr * cast struct sockaddr * для struct sockaddr_in * или struct sockaddr_in6 * при написании программ сокетов. #include #include #include #include #include #include int main() { struct addrinfo *ai; printf(“sizeof (struct sockaddr): %zu\n”, sizeof (struct sockaddr)); printf(“sizeof (struct sockaddr_in): %zu\n”, sizeof (struct sockaddr_in)); printf(“sizeof (struct […]