Netzwerk mit CSocket

Pillepop

Grünschnabel
bin ein C++/MFC Newbie und versuche mich an einem chat programm.

ich habe eine Instanz einer Unterklasse von CAsyncSocket erstellt,
und hab es bisher nur geschafft Variablen vom Typ CString mit der Funktion

m_ConnectSocket.Send(Data, Len) zu verschicken.

Dies ist zwar ganz nützlich, aber ich möchte auch Integer bzw. Structs (oder Klassen) übermittlen, welche dann von der
m_ConnectSocket.Receive(Buffer, BufferSize)-Funktion empfangen werden sollen.

1. Wie kann ich die verschiedenen gesendeten Variablen in der Empfangsfunktion unterscheiden? zB sollen 2 CString variablen gesendet werden

funktioniert das so einfach mit der Send() und Receive() ?

bitte helft mir
 

Thomas Kuse

Erfahrenes Mitglied
Kapsel deine Daten einfach in einen CString

Man kann sich dafür wunderbar Transport-Protokolle schreiben, die dann Client und Server implementieren und somit den CString wieder ordnungsgemäß auseinander nehmen können.

Im Internet gibt es aber auch andere Lösungen (Toolkits) als die CSocket Variante, bei denen ähnliche Anforderungen schon umgesetzt wurden.
 

Sybaris

Mitglied
Hi,

der gängige Weg um verschiedene Datentypen über das Netzwerk zu versenden ist, dass man ein CSocket (nicht CAsyncSocket!) mit einem Archiv (CArchive) verbindet und dann die gewöhnliche MFC-Serialisierung verwendet (da ist schon alles vorbereitet); ist sauber, auch für andere Herumschickereien verwendbar, versionsfest und verhältnismäßig easy...

G.