begin process at 2012 05 29 01:01:48
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Réseau & Internet

 > 

Comment parcourir la pile de réception


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Comment parcourir la pile de réception

mardi 23 août 2011 à 14:40:57 | Comment parcourir la pile de réception

riked

Bonjour,

Je programme actuellement une bibliothèque permettant l'utilisation des protocoles TCP et UDP à l'aide de Winsock.
Cette bibliothèque permet de gérer un client simple mais aussi de gérer un serveur multi-clients.
Avec le protocole UDP, le serveur, pour simuler une connexion distante avec les clients, va conserver les informations reçues grâce à la fonction recvfrom() et la structure sockaddr_in.
Ces informations vont permettre au serveur de pouvoir envoyer une donnée/d'en recevoir d'un client spécifique.
Pour recevoir des données en provenance du bon client, j'utilise ce code:

Code C/C++ :
sockaddr_in buffer_sockaddr;
TIMECAPS caps;
ZeroMemory(&caps,sizeof(caps));
timeGetDevCaps(&caps,sizeof(caps));
int size_sin = sizeof(sockaddr_in);

do
{
 ZeroMemory(&buffer_sockaddr,sizeof(buffer_sockaddr));
 Sleep(caps.wPeriodMin);

 //Récupération du sockaddr_in du client sans modifier la pile de réception
 recvfrom(m_sock,NULL,0,MSG_PEEK,(SOCKADDR*)&buffer_sockaddr,&size_sin); 
	

} while ( /* test de la bonne IP du client ainsi que du bon port de connexion */)

//Si on arrive ici, c'est que le message provient du bon client donc on le récupère
recvfrom(m_sock,buffer_data,size_data,0,(SOCKADDR*)&m_client[id].sin,&size_sin); 
 


Dans ce code, m_sock correspond à la socket du serveur et m_client[id] correspond au client ciblé.

Malheureusement, ce code ne permet que de récupérer le premier message de la pile donc si le message du client ciblé se situe après le premier message, il ne sera jamais récupéré.
Ma question est donc : Comment peut-on parcourir la pile de réception afin de récupérer le message situé telle ou telle position ?

Merci d'avance pour vos réponses.



Cette discussion est classée dans : code, client, pile, sockaddr, caps


Répondre à ce message

Sujets en rapport avec ce message

Probleme de Client Serveur [ par Krox68 ] voila jaimerais faire un programme client qui puisse se connecter a ce serveur : #include void main(){ WSADATA WSAData; WSAStartup(MAKEWORD(2,0), &WS code soure de client serveur et un autre pour compilateur [ par foureal ] je suis un débutant et j'aimerais avoir les codes sources simple pour savoir comment programmer une application client/serveur et comment réaliser un Timeout TCP [ par alexixlebaulois ] Bonjour,j'ai un gros problème dans mon prog: j'ai plusieurs threads qui communiquent en même temps avec des logiciels externes pour récolter des stats Recupérer ip client dans structure sockaddr [ par trafounet ] bonjour à tous,j'utilise les socket et j'essaye de recupérer l'adresse ip d'un client avec la fonction getpeername()seulement le 2eme paramètre qui es [devcpp] erreur de lieur [ par Ar4gorn ] Bonjour, Voila je developpe un leger client-serveur et avec dev-cpp c'est galere du moins au niveau de l'édition des liens. Je ne sais pas quoi mettr Problème OPC Client [ par ranma_1demi ] Bonjour,je développe un opc client en VC++ 6.0 pour me familiariser avec l'OPC DA.Je suis parti du code suivant :http://pgras.home.cern.ch/pgras/OPCCl Client - Serveur . TCP [ par sebounty ] Bonjour,Je suis, comme qui dirais debutant en Programmation C, C++.Aujourd'hui j'aimerais réaliser un Client Serveur TCP, Cependant, tous les codes qu Operation socket on non socket [ par let_me_in ] salut tout le monde, voici mon code : client: [code] #include #include #include #include #include #include client/serveur [ par tanoura ] salutje suis entrain de réaliser un programme de simulation du protocole RIP.il s'agit d'une application client serveur sur la même machine et meme co Client -> Serveur [ par norton ] Bonjour à tous. N'étant pas encore assez expérimenté dans le domaine des sockets je vous demande conseil.Je code sous Borland Builder C++ 6 avec les S


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales