wie zum senden von Dateien in chunks mit Buchse c/C++?
habe ich versucht zu finden, wie zum senden einer Datei in Stücke, die in C oder C++
ich sah einige Beispiele in den hier nicht finde, gutes Beispiel. ich bin ganz neu sockect Programmierung in C/C++
http://beej.us/guide/bgnet/html/single/bgnet.html
irgendwelche Ideen, wie ich brauche, um das senden von Dateien in chunks zwischen client und server? client, der die Datei angefordert, der server schickt es wieder zurück.
fand ich diese senden aber nicht sicher, es zu empfangen.
#include <sys/types.h>
#include <sys/socket.h>
int sendall(int s, char *buf, int *len)
{
int total = 0; //how many bytes we've sent
int bytesleft = *len; //how many we have left to send
int n;
while(total < *len) {
n = send(s, buf+total, bytesleft, 0);
if (n == -1) { break; }
total += n;
bytesleft -= n;
}
*len = total; //return number actually sent here
return n==-1?-1:0; //return -1 on failure, 0 on success
}
- Wenn Sie das neue socket-Programmierung versuchen, etwas einfacher, wie "hello world". Sockets sind etwas, das Sie nur in springen können nicht, es sei denn, Sie wollen eine Welt voller Schmerzen, schlechte Programmierung und Fehler.
- Blick auf die man-page von
sendfile
. - Es gibt keinen anderen Weg, das senden einer Datei an andere als in Blöcken, es sei denn, es passiert zu sein, klein genug, um passen in einen Puffer laden.
- gibt es eine exmpale, können Sie mir zu?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Schrieb ich diesen code für das empfangen von Dateien im
Client using linux sockets in C
.Hoffe, das hilft
Werfen Sie einen Blick auf TCP_CORK (man 7 tcp).
Aber wirklich, außer Sie wollen sich ein socket - /Netzwerkprogrammierung-Experte, verwenden Sie eine Bibliothek !
Denken Sie nur an Ihr Nächstes problem: Daten-Verschlüsselung (z.B. HTTPS/SSL). Bibliotheken, die Sorge für die blutigen details...