Мой сервер использует UDP. Он автоматически отправляет 900 байт / 1 мс моей программе после получения. Я использую API сокетов в Windows (VB6). Я сделал тест и знаю, что время обработки сообщения (около 0,3 мс) моей программы короче, чем время цикла (1 мс). Таким образом, причиной должен быть внутренний буфер сокета. Я пытаюсь вызвать функцию setsockopt
, чтобы установить больший буфер:
setsockopt(SockNum, SOL_SOCKET, SO_RCVBUF, SockBuffer(1), 1048576)
но я все равно потерял данные. Как я могу решить мою проблему? Я использую функцию recv
для получения данных. recvfrom
должно быть лучше?
Кроме того, мне нужно создать буфер FIFO для UDP. Как я могу это сделать (т.е. алгоритмы или примеры)?