Приветствую, проблема с recv. Принимает сообщения слитно в чем ошибка, как исправить? Если заранее определить как здесь, все корректно отправляется Хочется ставить \n после каждого принятия, но тогда он принимает каждое слово которое было введено через пробел, на новую строку
//Send
char buff[512] = "Helloy client\n";
int sen = send(AcceptSocket, buff, strlen(buff), 0);
while(1)
{
int rec = recv(AcceptSocket, buff, sizeof(buff), 0);
printf("%s", buff);
scanf("%s",&buff);
send(AcceptSocket, buff,sizeof(buff), 0);
};
Привет друг! //Отсылаем данные
Приветдруг! // Такие данные придут клиенту или же если отправлены наоборот
Аналогично и с Клиентом
Для начала - хоть это и не к вашему вопросу - передавайте и нулевой символ -
int sen = send(AcceptSocket, buff, strlen(buff) +1, 0);
^^^
или потом его дописывайте..
А у вас проблема в том, что scanf("%s",&buff);
читает одно слово, а не строку целиком. Используйте, например, fgets
:
fgets(buff,sizeof(buff),stdin);
Попробуйте после recv(AcceptSocket, buff, sizeof(buff), 0);
объявить string ResponseBuffer(buff);
и используйте дальше ResponseBuffer со всеми фичами string. У меня при такой практике проблем не возникало.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть число 2098216Надо найти количество трехзначных чисел, которые можно создать из цифр этого числа, т
ЗдравствуйтеНе могу понять, почему не импортируется таблица в phpmyadmin