C
Was soll das überhaupt für eine Funktion sein
void
send (a)
oO
So schwer ist das wirklich nicht:
void SendFile(int sock, const char* filename)
{
char buf[0x1000];
FILE *file = fopen(filename, "rb");
while (!feof(file))
{
int rval = fread(buf, 1, sizeof(buf), file);
send(sock, buf, rval, 0);
}
closesocket(sock);
}
void RecvFile(int sock, const char* filename)
{
int rval;
char buf[0x1000];
FILE *file = fopen(filename, "wb");
while ((rval = recv(sock, buf, sizeof(buf), 0)) > 0)
{
fwrite(buf, 1, rval, file);
}
closesocket(sock);
}
(Ungetestet, jede Überpfüfung der Übersicht halber weggelassen.)
Nachtrag:
Es ist ohne ein darüber liegendes Protkoll nicht möglich, das Dateieende anders als durch einen Verbindungsabbruch zu markieren. Du kannst nicht wissen, was in einer Datei steht. Falls ein Verbindungsabbruch nicht in Frage kommt, definiere ein simples Protokoll. TCP gibt ja eh darauf acht, dass deine Pakete in der richtigen Reihenfolge empfangen werden, von daher ist das nicht soo schwer.