Сохранение вывода read() из сокета в переменной char

Какой самый простой способ сохранить вывод операции read() или recv() из сокета в переменной char?

Я передаю фрагмент текста от клиента к серверу, и мне нужно прочитать его в переменную char, которая затем будет отображаться и использоваться дальше в приложении.


person Jamie Rees    schedule 09.05.2012    source источник
comment
strcpy (имя файла, буфер данных); ....конечно, это был долгий день, меня осенило, как только я опубликовал его! Спасибо хоть!   -  person Jamie Rees    schedule 10.05.2012


Ответы (2)


Если вы читаете из сокета, просто передайте адрес вашего символьного буфера в качестве второго аргумента read() (или второго аргумента recv() или recvfrom(), если вместо этого вы используете любой из них).

person James Youngman    schedule 09.05.2012

Вы можете попробовать что-то вроде этого:

char buf[1024];
ssize_t n = read(fd, buf, sizeof(buf));

Не забудьте проверить и интерпретировать возвращаемое значение n.

Если вы хотите передать данные, вы также можете использовать vector:

std::vector<char> buf(1024);
ssize_t n = read(fd, buf.data(), buf.size());
person Kerrek SB    schedule 09.05.2012
comment
Вы также можете использовать std::string. - person John Dibling; 10.05.2012