Подскажите пожалуйста с чем может быть связана ошибка при пересылке данных?

303
19 декабря 2016, 20:07

Разрабатываю клиент серверное приложение и в нем возникает ошибка при пересылке данных. Заключается она в следующем:

Я пересылаю данные с клиента на сервер. С клиента отправляю 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;
}

Приложения построены на сокетах,сокеты корректно запускаются и работают, На вход так же подается нормальное сообщение.

Answer 1

Цикл принятия данных из сокета

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);

READ ALSO
Работа со стеком №2

Работа со стеком №2

Получив ответ на свой вопрос, я сел записывать решениеНо вот в этой части кода выскакивает ошибка: Value of type void is not allowed

300
_tmain() почему такое название?

_tmain() почему такое название?

Почему такое имя дает VS, исполняющей функции, в консольном приложении?

275
Динамические массивы

Динамические массивы

Как правильно создать динамический массив на 100 элементов? Как удалить потом значение каждого его элемента? Как удалить весь динамический...

269
Актуальность COM, ATL, MFC

Актуальность COM, ATL, MFC

Здравствуйте

418