У меня есть клиент libwebsocket для отправки двоичных данных. Я сохранил свои двоичные данные в буфере [т. buf] и запись в сокет.libwebsocket отправить ограничение полезной нагрузки
n = libwebsocket_write(wsi,
&buf[LWS_SEND_BUFFER_PRE_PADDING], l, opts | LWS_WRITE_BINARY);
Моя проблема сокет может писать только 22392 байт [Как я получил п = 22392]. когда мой l> = 22392 байта замечен как частичная запись. Это значение варьируется для разных архитектур.
Вопрос:
Есть ли какие-либо ограничения размера данных в libwebsocket?
Любой способ увеличить полезную нагрузку на буфер?
Спасибо @ Дэвид Шварц. Я новичок в libwebsocket. Я также хотел бы знать, что мешает писать больше байтов, чем 22392 байта. – Han
Если вы устанавливаете сокет неблокирующимся, частичная запись будет происходить, когда сокет будет блокироваться, если он попытается отправить больше. Если вы устанавливаете сокет неблокирующимся, а затем пытаетесь записать его, очевидно, вы * должны * обрабатывать частичную запись. –