CAsyncSocket & Winsock ?
-
also ich bastel mir gerade einen konsole server, den client will ich aber mit mfc machen.den server habe ich mit winsock2.0 gemacht.muss ich wenn ich mit CAsyncSocket darauf arbeiten will irgendwas beachten ??irgendwelche protokolle oder sonstiges, kA was ??
-
Hi,
ich glaube nicht, was die Protokolle angeht. Es ist mir aber so gegangen,
dass die einzelnen Nachrichten nicht immer getrennt werden. Wenn du also "ASD" und "FGH" sendest mit dem Winsock2er kann "ASDFGH" beim CAsync ankommen.
-
hmm und was kann ich tun damit dass nicht passiert ?
-
Hi,
also, ich hab dann immer Trennzeichen versendet: "***".
Dann habe ich in der OnReceive eine klitzekleine Funktion gehabt, in der ich die wieder rausgesucht habe.void CSendSocket::OnReceive(int nErrorCode) { // TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen if(nErrorCode==0) { char* pBuf= new char[512]; int count = Receive(pBuf,512); if(count>0) pBuf[count]=NULL; CString string(pBuf); delete[] pBuf; while(string.Find("***",0)!=-1) { CString left = string.Left(string.Find("***",0)); OnReceive(left); string=string.Right(string.GetLength()-(string.Find("***",0)+3)); } if(string!="") OnReceive(string); } CAsyncSocket::OnReceive(nErrorCode); }
OnReceive(CString string) ist meine Funktion, mit der ich die eingekommenen Signale verarbeite.
-
hmm werde ich mal ausprobieren wenn es soweit ist