Описание тега select-function

Этот тег предназначен для вопросов, касающихся системной функции select(). Эта функция используется, чтобы избежать длительного ожидания. Для таких вопросов используйте этот тег, а не слишком широкий тег "выберите".
1 ответ

Проблемы в select() и отправке сигнала SIGUSR1 в конце (язык C)

Я реализую классическую программу сокращения карт, в которой у меня есть родитель, который включает в себя N детей (карты) + 1(уменьшение). Родитель отправляет информацию через неназванные каналы каждому из N дочерних элементов. Карты обрабатывают з…
16 окт '10 в 03:59
1 ответ

Выберите () на сокете (проблема)

Недавно я сделал эту часть кода. Это работает, но select() работает плохо.Получив последний ответ от сервера, он начинает повторять последнюю строку ответа со странными символами в начале строки ответа. Итак, посмотрите на это: :nacbot!monitor@nac.b…
07 дек '09 в 10:19
0 ответов

Необычное поведение select / sock stream поведение

Я пишу небольшую программу для запроса фрагмента файла, а затем другая программа возвращает этот конкретный фрагмент файла. Я могу заставить это работать, используя файлы размером до 555000 байт, но на чем-то большем, я получаю необычное поведение. …
30 сен '12 в 02:15
2 ответа

pthread_create только если данные доступны на сокете

У меня есть сервер, который отправляет датаграммы udp клиенту и получает датаграммы NACK от клиента, если пакет потерян. Я хочу создать поток, который будет обрабатывать каждый пакет NACK, но я хочу создать поток, только если у меня есть что-то, что…
07 апр '14 в 12:52
1 ответ

select() возвращает положительное значение только один раз

Функция выбора возвращает значение +ve, когда некоторые пакеты достигают порта UDP, как и ожидалось. Но это происходит только один раз. Со второго раза, когда пакет принят на порт UDP, функция не отвечает за это. Но в первый раз после получения паке…
03 дек '14 в 09:07
2 ответа

select() в прокси-сервере

Я строю прокси-сервер в C, и я пытаюсь понять select() функция. У меня есть код, созданный таким образом, что соединение устанавливается с клиента, а затем веб-адрес извлекается, чтобы можно было установить другое соединение для подключения к реальн…
22 окт '12 в 13:04
3 ответа

С розетки - заблокированы на выбор

Я работаю над программой клиент-сервер, которая использует вызовы select() для прослушивания нескольких сокетов. Но мой вызов select блокируется, хотя у меня есть сообщение в одном из этих сокетов, вызов select() не распознает его и все еще ждет там…
22 окт '11 в 07:16
3 ответа

Почему select() всегда истекает? (окна)

Я использую select, чтобы попытаться дождаться подтверждения от другого хоста в сети, но он всегда возвращает 0. Я видел другие потоки с похожими вопросами, и их проблема всегда в том, что они не сбрасывают fd_set, или они не передают правильное зна…
12 ноя '12 в 22:04
2 ответа

Чтение сигнализируется с помощью select(), но recv() не возвращает данных и сигнализирует EAGAIN на неблокирующих сокетах

Я получил сигнальный сокет для чтения из select(), но затем по recv call() данные не поступили, вместо этого он возвращает -1 с errno==EAGAIN. Я могу допустить, чтобы никакой другой поток не касался сокета. Я думаю, что это поведение не является пра…
24 ноя '11 в 11:55
3 ответа

Как получить интерфейс, к которому я подключен

Я пытаюсь реализовать приложение, которое получает пакет (возможно, ICMP) на интерфейсе крана. У меня есть код что-то вроде этого. strcpy(ifName, "tap0"); if ((sockfd = socket(PF_PACKET, SOCK_RAW,0) == -1) { perror("ERROR: socket"); } retVal = setso…
4 ответа

Время ожидания select() сразу после долгого времени выполнения (C++)

В большинстве случаев этот код работает просто отлично. Но иногда, когда исполняемый файл некоторое время выполнялся, select(), по-видимому, немедленно истекает, а затем попадает в странное состояние, в котором он продолжает вызываться, время истека…
01 апр '11 в 19:36
1 ответ

C exec/pipe/select program - отсутствует вход от дочернего элемента

У меня есть программа, которая порождает дочерний скрипт. Дочерний скрипт просто повторяет любой ввод 1/2 назад к STDOUT и STDERR. В остальное время он спокойно его потребляет. То, что я получаю, является несвоевременным результатом результатов запи…
24 янв '12 в 20:04
2 ответа

Выберите сбой с помощью программы C, но не оболочки

У меня есть родительский и дочерний процессы, и родитель может читать выходные данные дочернего процесса и отправлять их на вход дочернего процесса. Пока что все отлично работает со скриптами оболочки, тестирующими команды, которые вводят и выводят …
03 май '10 в 09:44
5 ответов

C, программирование сокетов: подключение нескольких клиентов к серверу с помощью select()

Я пытаюсь создать сервер, к которому могут подключаться несколько клиентов. Вот мой код до сих пор: Клиент: int main(int argc, char **argv) { struct sockaddr_in servaddr; int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock == -1) perror("…
2 ответа

Ошибка программирования C с помощью FD_SET

У меня проблема с моим кодом, и я не могу выяснить, в чем проблема, так как я новичок в select();Может кто-нибудь сказать мне, в чем проблема? run_fct.c: In function ‘run’: run_fct.c:22: error: invalid type argument of ‘->’ (have ‘fd_set’) cc1: w…
06 ноя '11 в 17:43
1 ответ

Пинг-пакеты на сырых сокетах

Я пытаюсь получать пакеты ping на интерфейсе veth. Но я не вижу ничего на принимающей стороне. Я могу увидеть пакет, когда я делаю дамп TCP. Вот мой код s_int32_t checkingRawSocket(void) { int sockfd; char ifName[IFNAMSIZ]; fd_set readfds; int m_sd;…
29 мар '14 в 03:09
1 ответ

select() немедленно возвращает 0 для неблокирующего сокета AF_PACKET, игнорируя timeval

Предполагается, что мой код Linux ниже ищет все интерфейсы, пока не получит ответ от определенного MAC-адреса с использованием кадров ETHERNET типа 2. Это не завершено. Я хочу, чтобы select() заблокировал значение времени ожидания. Проблема в том, ч…
09 сен '17 в 20:17
3 ответа

Как использовать select() для чтения ввода с клавиатуры в C

Я пытаюсь использовать select() для чтения ввода с клавиатуры, и я застрял в том, что я не знаю, как читать с клавиатуры, и для этого использую файловый дескриптор. Мне сказали использовать STDIN и STDIN_FILENO для решения этой проблемы, но я все ещ…
20 июн '11 в 22:17
1 ответ

Использование системного вызова select() для прослушивания на stdin и на сервере

Я хочу использовать системный вызов select для мультиплексирования STDIN и SOCKFD (подключенных к серверу), так что я должен прослушивать STDIN и SOCKFD, и в зависимости от того, где данные доступны для чтения, я должен продолжить. Примечание: #defi…
19 мар '11 в 06:53
1 ответ

FD_SETSIZE против рассчитанного значения

В настройке сервера / клиента у меня есть сервер, соединяющийся с клиентами через несколько (на данный момент 4) различных сокетов. В данный момент я использую select с вычисленным значением set_size, но каков верхний предел, прежде чем вместо него …
07 ноя '12 в 14:12