У меня возникла проблема, которую я не мог решить, поэтому я перезапустил. У меня была проблема с инкапсуляцией данных или, точнее, без инкапсуляции. Поэтому после того, как я понял, что инкапсуляция полезна, я начал переписывать код.
Теперь я столкнулся с другой проблемой. Почему-то мои вызовы отправки и получения не работают так, как я хочу.
Вот часть, куда я отправляю:
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- person Fozi   schedule 02.09.2016