send() stoppen
-
moin leute...
Ich bin gerade dabei, eine art "ftp server" mit Clienten zu coden, bei dem man
logischerweise Dateien übertragen kann. Um die Dateien zu senden verwende ich
folgenden code:HANDLE fileHandlee; DWORD fileSize; DWORD bytesRead; char * sendeBuffer; fileHandlee = CreateFile(cFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); fileSize = GetFileSize(fileHandlee,NULL); sendeBuffer = (char*)malloc(fileSize+sizeof(DWORD)); memcpy(sendeBuffer,(void*)&fileSize,sizeof(DWORD)); ReadFile(fileHandlee,sendeBuffer+sizeof(DWORD),fileSize,&bytesRead,NULL); CloseHandle(fileHandlee); send(Socket, sendeBuffer, (fileSize+sizeof(DWORD)), 0); free(sendeBuffer);Jetzt möchte ich aber zusätzlich dem Benutzer noch die Möglichkeit geben, den
Datentransfer abzubrechen. Wisst ihr vielleicht, wie ich das bewerkstelligen
kann?big thx

crazychicken
-
da gibt's viele möglichkeiten.
spontan fällt mir ein:1. die 'send'-funktion in einem separaten thread laufen zu lassen und im hauptprogramm den socket schliessen (close, closesocket). dann bricht send ab.
2. 'send' von kleinen häppchen (2000 bytes oder so) und nach jedem 'send' abfragen ob abgebrochen werden soll