У меня возникла проблема, я действительно не мог решить, поэтому я перезапустил. У меня была проблема с инкапсуляцией данных или более конкретными без инкапсуляции. Поэтому после того, как я понял, эта инкапсуляция полезна, я начал переписывать код.Два раза отправить и recv не работают C
Теперь я столкнулся с другой проблемой. Как-то мои призывы отправки и возврата не работают так, как я хочу, чтобы они были.
Вот та часть, где я отправляю:
char to_send[] = "hello. I am the Data.";
// get size of data
int len = strlen(to_send);
char slen[len];
sprintf(slen,"%d",len);
printf("%s\n",slen);
// send size of data
if(send(comm_fd,slen,len,0)<0){perror("Error on send"); exit(1);}
// send data
if(send(comm_fd,to_send,len,0)<0){perror("Error on send"); exit(1);}
А вот часть, где я ПРИЕМ:
// getting size of bytes to recv
char buf[1000];
bzero(buf,1000);
int rec = recv(comm_fd, buf, 100,0);
printf("rec\n: %i",rec);
printf("buf\n: %s\n", buf);
int buffsize;
buffsize = atoi(buf);
bzero(buf,1000);
printf("buffsize: %i\n",buffsize);
// recv the bytes
bzero(buf,1000);
rec = recv(comm_fd, buf, buffsize,0);
printf("rec\n: %i",rec);
printf("%s",buf);
Так что моя проблема сейчас: я могу ПРИЕМ размера следующих данных и печатей Это. Но сами данные не отображаются.
Может кто-нибудь мне помочь? Я думаю, что я делаю основные вещи неправильно (я новичок в C и сетевого программирования)
Заранее спасибо
'slen' размер не' len' – Fozi