Разрабатываю клиент серверное приложение и в нем возникает ошибка при пересылке данных. Заключается она в следующем:
Я пересылаю данные с клиента на сервер. С клиента отправляю 32, а на сервер приходит 323 или с любым другим случайным хвостом. Ошибка возникает не всегда, ниже выложил код отправки сообщения на сервер.
int get_msg(int sock,char *Text)
{
int k=1024;
char buf[k];
int bytes_read = recv(sock, buf, k, 0);
if(bytes_read <= 0){return 1;}
Text=strcpy(Text,buf);
k-=bytes_read;
while(k!=0)
{
bytes_read = recv(sock, buf, k, 0);
if(bytes_read <= 0){return 1;}
Text=strcat(Text,buf);
k-=bytes_read;
}
cout<<"\nGET="<<Text<<" GET_bytes="<<bytes_read<<endl;
return 0;
}
int send_msg(int sock,char *Text)
{
/**/
int k=1024;
int bytes_send = send(sock, Text, k, 0);
if(bytes_send <= 0) {return 1;}
cout<<"\nSEND="<<Text<<" SEND_bytes="<<bytes_send<<endl;
return 0;
}
Приложения построены на сокетах,сокеты корректно запускаются и работают, На вход так же подается нормальное сообщение.
Цикл принятия данных из сокета
int temp = 0, revved = 0, size = 1024;
do {
. temp = recv(sock, str + revved, size - revved, 0);
. if(temp > 0)
. . revved += temp;
else break;
while(revved < size);
printf("%s", str);
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Получив ответ на свой вопрос, я сел записывать решениеНо вот в этой части кода выскакивает ошибка: Value of type void is not allowed
Почему такое имя дает VS, исполняющей функции, в консольном приложении?
Как правильно создать динамический массив на 100 элементов? Как удалить потом значение каждого его элемента? Как удалить весь динамический...