Oto kod obsługujący wymianę informacji przez gniazdo:
Kod: Zaznacz cały
void HandleCli(int clnSocket)
{
char Buffer[BUFOR];
int recvMsgSize;
string mes;
for (;;)
{
if ((recvMsgSize = recv(clnSocket, Buffer, sizeof(Buffer), 0)) < 0)
ErrorOccured((char *)"Blad odebranych danych");
if (recvMsgSize == 0) break;
mes = Buffer;
cout << mes << endl;
cout << mes.length() << endl;
mes.clear();
cout << clnSocket << endl;
for(int i=0;i<BUFOR;i++) Buffer[i]='\0';
}
close(clnSocket);
}
2. Czy tak warto czyścić bufor? for(int i=0;i<BUFOR;i++) Buffer='\0';
3. Problem, jeżeli klient wysyła dane liniami, np:
Pierwsze dane
Drugie dane
To mój serwer interpretuje to jako jedną linię:
Kod: Zaznacz cały
Pierwsze dane
Drugie dane
Koniec
35