Описание тега 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…
21 мар '14 в 11:20
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("…
16 ноя '10 в 23:41
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