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


Anmelden zum Antworten