Приветствую, проблема с 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. У меня при такой практике проблем не возникало.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей