Ich lief in ein Problem, das ich wirklich nicht lösen konnte, also habe ich neu gestartet. Ich hatte ein Problem mit Datenkapselung oder spezifischer ohne Kapselung. Nachdem ich herausgefunden hatte, dass diese Kapselung nützlich ist, begann ich den Code neu zu schreiben.Zwei mal send und recv arbeiten nicht C
Jetzt laufe ich in ein anderes Problem. Irgendwie funktionieren meine send und recv Anrufe nicht so, wie ich es möchte. Hier
ist der Teil, wo ich an:
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);}
Und hier Teil, wo ich empf:
// 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);
So, jetzt ist mein Problem: Ich habe die Größe der nächsten Daten empf und drucken kann es. Aber die Daten selbst werden nicht angezeigt.
Kann mir jemand helfen? Ich glaube, ich falsch mache wichtige Dinge (ich bin neu zu C und Programmierung zum Netzwerk)
Vielen Dank im Voraus
'slen' s Größe ist nicht' len' – Fozi