Je dois revenir encore une fois aux sockets de Symbian. Code pour établir une connexion à un serveur distant se présente comme suit:Symbian: effacer le tampon de l'objet RSocket
TInetAddr serverAddr;
TUint iPort=111;
TRequestStatus iStatus;
TSockXfrLength len;
TInt res = iSocketSrv.Connect();
res = iSocket.Open(iSocketSrv,KAfInet,KSockStream, KProtocolInetTcp);
res = iSocket.SetOpt(KSoTcpSendWinSize, KSolInetTcp, 0x10000);
serverAddr.SetPort(iPort);
serverAddr.SetAddress(INET_ADDR(11,11,179,154));
iSocket.Connect(serverAddr,iStatus);
User::WaitForRequest(iStatus);
Au cours de la iSocket je reçois des paquets de taille variable. Sur très peu d'occurrences, il arrive qu'un tel paquet soit corrompu. Ce que je voudrais faire alors est d'effacer toutes les données qui sont actuellement dans le tampon iSocket et prêt à être lu. Je n'ai vu aucune méthode de RSocket qui me permette d'effacer le contenu du buffer. Est-ce que quelqu'un sait comment faire ça? Si possible, je voudrais éviter d'utiliser RecvOneOrMore() ou recv similaire vider la mémoire tampon
Merci
Comment savez-vous que les données sont corrompues? Êtes-vous sûr de ne pas chercher une fonctionnalité qui ne devrait pas faire partie d'une socket TCP? Ne devriez-vous pas ouvrir une seconde prise lorsque le premier canal de communication est compromis? –