как отправить двоичные данные через сокет в c?

Я пытаюсь отправить двоичные данные клиенту, что я пытаюсь сделать, это: write(client_fd,"0xf",size,flag). Я не знаю, как сделать строку двоичной, и не уверен, какой тип флага мне следует использовать.


person SadSalad    schedule 21.05.2020    source источник
comment
Когда вы говорите, что хотите отправить строку в двоичном виде, вы имеете в виду отправить '0', 'x' 'f' и '\0' или отправить b1111?   -  person Fiddling Bits    schedule 21.05.2020
comment
Отвечает ли это на ваш вопрос? Отправлять необработанные двоичные данные через сокет C?   -  person Francesco Lucianò    schedule 21.05.2020


Ответы (1)


Строковый литерал "0xf" похож на

char str[] = { '0', 'x', 'f', '\0' };

Если вы хотите записать фактические данные 0x0 и 0xf, шестнадцатеричные значения могут быть выражены в строковом литерале, каждое из которых начинается с \x следующим образом:

size = 2;
nwritten = write(sock_fd, "\x0\xf", size);
person Milag    schedule 21.05.2020