>>
>добавляй после каждого приема в буфер
>buf[bytes_read] = '\0';
>Возможно поможет. ;-)) я не знаю, как мне это добавить правильно.
Подробной документации нигде не нашёл.
если не сложно,-поподробнее опишите.
>Вообще то не плохо выяснить, в какой посылке приходят неверные строки, совет:
>выведи все что посылаешь на терминале сервера, разделяя каждую посылку спец
>строками: |--------------|
>и тоже сделай у клиента.
>Потом можешь написать сюда еще разик, с результатом.
Интересная идея!
Ниже результат добавления "спец.строк" и измененный код.
полный хаус...
1.1 13:50:40.138692
------------------
+++++++++++
1.2 13:5------------------
0:40.138832
++++++++------------------
+++
1.3 13:50:40.138------------------
842
+++++++++++
1.4 ------------------
13:50:40.138850
++++------------------
+++++++
1.5 13:50:40------------------
.138857
+++++++++++
------------------
Client:
while (1)
{
length = recv(sock_fd, buffer, 20, 0);
if (length == 0) {
printf("Connection closed by remote host.\n");
break;
}
printf("%s",buffer);
printf("------------------\n");
}
close(sock_fd);
return(0);
}
Server:
while (1)
{
int a,i;
struct timeval tv;
struct tm *actual_time;
char vorbuffer[9];
for(a=1;a<=10;a++){
for(i=1; i<100;i++){
gettimeofday( &tv, 0 );
actual_time = localtime( &(tv.tv_sec ) );
strftime(vorbuffer,9, "%H:%M:%S", localtime( &(tv.tv_sec ) ) );
sprintf(buffer,"%d.%d\t%s.ld\n",a,i,vorbuffer, tv.tv_usec);
length = strlen(buffer);
send(client_fd, buffer, length, 0);
sprintf(buffer,"+++++++++++\n");
length = strlen(buffer);
send(client_fd,buffer,length,0);
}
sleep(1);
}
return 0;
}