So, das Socketprinzip hab ich jetzt kapiert denke ich. Allerdings kann ich derzeit nur Strings (Char Arrays) übers LAN jagen. Das sieht im Code etwa so aus:
Server:
Client:
Das funktioniert jetzt auch ganz nett, aber ich will eigentlich keinen Text sondern Binärdaten verschicken (einmal Integerwerte und zum anderen Bildmaterial). Meine Frage ist jetzt, wie ich sowas am sinnigsten mache.
Am Client ist der Char Buffer ja im Prinzip schonmal gut. Wenn wir jetzt aber von unserem Integerbeispiel ausgehen, müsste der Client via atoi einen String vom Server in nen Integer wieder zurückverwandeln können.
Wie verpack ich aber am Server am besten nen Integer als String? Mit itoa, ok - Länge? 32bit - dacht ich auch, klappt aber leider net. Wenn ich die Werte so hin und her konvertiere bekommt der Client zwar 4 Bytes rein, allerdings funktioniert die Rückwandlung des Strings in Integer nicht mehr.
Ihr seht ich bin da etwas am Basteln. Hat jemand ein par Tips für mich, wie man das zu machen hat? Oder läuft es wirklich auf ein hin und herwandeln von Strings in Integer oder weiß Gott was hinaus?
Server:
Code:
char send_buffer[] = "Message to send";
int bytes;
bytes = send(client_socket, send_buffer, strlen(send_buffer) );
Client:
Code:
char rec_buffer[1024];
int bytes;
bytes = recv(client_socket, rec_buffer, sizeof(rec_buffer) - 1, 0);
if(bytes != -1)
{
rec_buffer[bytes] = '\0';
printf("%s",rec_buffer);
}
Das funktioniert jetzt auch ganz nett, aber ich will eigentlich keinen Text sondern Binärdaten verschicken (einmal Integerwerte und zum anderen Bildmaterial). Meine Frage ist jetzt, wie ich sowas am sinnigsten mache.
Am Client ist der Char Buffer ja im Prinzip schonmal gut. Wenn wir jetzt aber von unserem Integerbeispiel ausgehen, müsste der Client via atoi einen String vom Server in nen Integer wieder zurückverwandeln können.
Wie verpack ich aber am Server am besten nen Integer als String? Mit itoa, ok - Länge? 32bit - dacht ich auch, klappt aber leider net. Wenn ich die Werte so hin und her konvertiere bekommt der Client zwar 4 Bytes rein, allerdings funktioniert die Rückwandlung des Strings in Integer nicht mehr.
Ihr seht ich bin da etwas am Basteln. Hat jemand ein par Tips für mich, wie man das zu machen hat? Oder läuft es wirklich auf ein hin und herwandeln von Strings in Integer oder weiß Gott was hinaus?