У меня возникают проблемы с отправкой строки по сети TCP, где строка отправляет дополнительные символы, которые не были введены.Отправка строки по сети с использованием сокетов в C++
Например, когда я введите следующую строку ...
я получаю следующий результат на приемном конце.
Ниже приведен код, который я использую для отправки строки.
string input;
printf("Please input what you want to send...\n");
printf(">");
cin >> input;
const char* ch = (const char*)&input;
int lengthOfBytes = sizeof(input);
for (int i = 0; i < lengthOfBytes; i++)
{
n = send(socket_d, &*ch, 10, 0);
}
//Reading in characters.
if (ch == (const char*)'\r')
{
cout << "\n";
}
И вот код, используемый для получения строки.
int n;
int count = 0;
char byte;
n = recv(socket_d, &byte, 1, 0);
if (n <= 0)
{
if (WSAGetLastError() != WSAEWOULDBLOCK)
{
cout << "Terminated " << WSAGetLastError() << "\n";
return;
}
}
else
{
cout << (char) byte;
if ((char) byte == '\r')
cout << "\n";
}
Что я делаю неправильно при отправке строки по сети?