ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
1093
1093
EMPFEHLEN
-
Hallo,
ich knobel gerade ein bisschen wie ich Dateien jeglicher Art und beliebiger Größe per TCP verschicken kann. Das Problem dabei ist nicht die Verbindung selbst, dass habe ich alles schon fix und fertig. Ich habe es auch schoneinmal in C programmiert. Zwar nicht elegant aber es hat funktioniert. Nun jetzt habe ich mich rangesetzt es komplett mit C++ mitteln zu programmieren aber irgendwie will dass nicht so wirklich.
Naja ich hätte halt auch gerne ein paar Informationen wie man überhaupt richtig an die Sache rann geht! Was muss ich bedenken um Fehler zu vermeiden? Habt Ihr evtl. gute Beispiele?
Achja und falls es wichtig ist ich verwende die MFC(CSocket) für die Netzwerkverbindung.
Danke schonmal
LG ManuOS: Win 7 Ultimate x64
CPU: Intel Core i7 2600K (3,4GHz - 3,8 GHz)
RAM: 4 x 8GB-DDR3 1333MHz
Board: Asus P8Z68-V/Gen3
GFX: Nvidia GTX580 (Palit)
Cinema 4D R12, Photoshop CS5, Visual Studio 2010, Qt SDK, Notepad++
blog.unlimitedengine.de
design-projects.de
-
04.02.10 12:05 #2
- Registriert seit
- Feb 2004
- Ort
- Ehingen (BW)
- Beiträge
- 41
Damit:
?!Code :1 2 3 4 5
virtual int Send( const void* lpBuf, int nBufLen, int nFlags = 0 );
Ich verstehs Problem nicht ganz, such dir n Puffer aus ... BYTE * bBuf = new BYTE[1024];
oder so, dann lieste die Datei aus in 1024er blöcken, und haust das per Send ins netz, wenn die Verbindung steht, reagierste über OnReceive (Callback) auf die einkommenden Daten und stückelst sie in braven 1024er blöcken wieder zusammen.
Bei mir sieht das so aus:
/e: Achja, was du bedenken solltest: Dein Empfangspuffer leert sich nicht in "Null" zeit, sondern braucht immer Zeit, ebenso gehts deinem Sendepuffer. Standard war AFAIK 8kb, kann mich hier aber auch täuschen.Code :1 2 3 4 5 6 7 8 9
sendFile.Open(this->d_strFileName, CFile::modeRead, NULL); do { iRead = sendFile.Read(ReadBuf, 1024); ::_itoa(iRead, pBuf, 10); this->Send(pBuf, 4); // übertrage größe des Pakets this->Send(ReadBuf, iRead); // übertrage paket //Sleep(100); //Debuggingzwecke } while(iRead > 0);
Hau dir doch gegebenenfalls ne log rein wie oft deine OnReceive aufgerufen wird, (evtl mit paketnummerierung) dann siehste wo fehler auftreten/ ob die kommunikation funktioniert oder ob generell was nicht stimmt - wobei dein Send in dem Fall n Error werfen sollte.Geändert von PoebelundGesocks (04.02.10 um 13:27 Uhr) Grund: /e & formatierung
Ähnliche Themen
-
Winsock Dateien Senden
Von DelphiDell im Forum C/C++Antworten: 5Letzter Beitrag: 07.05.06, 18:19 -
SHOUTCAST: *.nsv Dateien senden?
Von djspike im Forum Videoschnitt, Videotechnik & -produktionAntworten: 3Letzter Beitrag: 09.10.05, 12:00 -
C# - Dateien im Netzwerk senden
Von Alexander12 im Forum .NET ArchivAntworten: 2Letzter Beitrag: 18.07.05, 21:10 -
mehrere dateien mit formular senden
Von fercules im Forum PHPAntworten: 10Letzter Beitrag: 31.10.04, 22:09 -
Dateien von UserPC per eMail senden
Von CoRe im Forum PHPAntworten: 5Letzter Beitrag: 05.09.02, 14:53





Zitieren
Login






