Accueil > Forum > > > > [C][Serveur TCP multiport]
[C][Serveur TCP multiport]
mardi 23 septembre 2008 à 15:59:03 |
[C][Serveur TCP multiport]

mandrake73
|
Bonjour, dans le cadre dans serveur tcp ecoutant sur plusieur port. Comment savoir sur quel port le client s'est connecte. Merci
|
|
mardi 23 septembre 2008 à 17:55:41 |
Re : [C][Serveur TCP multiport]

ctx_man
|
Salut la fonctions accept() ? SOCKET accept( SOCKET s, struct sockaddr* addr, int* addrlen ); Parameters s : [in] Descriptor that identifies a socket that has been placed in a listening state with the listen function. The connection is actually made with the socket that is returned by accept.
addr : [out] Optional pointer to a buffer that receives the address of the connecting entity, as known to the communications layer. The exact format of the addr parameter is determined by the address family that was established when the socket from the sockaddr structure was created.
addrlen : [in, out] Optional pointer to an integer that contains the length of addr.
struct sockaddr_in { short sin_family; u_short sin_port; C'est ca que tu cherches non ? struct in_addr sin_addr; char sin_zero[8]; };
Le travail c'est la santé, ne rien faire c'est la préserver !!!
|
|
mardi 23 septembre 2008 à 18:05:32 |
Re : [C][Serveur TCP multiport]

mandrake73
|
Jai deja etudie cette solution mais a priori le port dans la structure serait le port client. (enfin je pense parce que le port ne correspond pas a ce que jattend.)
Merci quand meme ;)
|
|
mardi 23 septembre 2008 à 18:13:56 |
Re : [C][Serveur TCP multiport]

ctx_man
|
Et bien bases toi sur la socket. Tu as une socket par port, donc tu fait un tableau en associant socket/port, selon la socket qui accept tu connais le port.
Le travail c'est la santé, ne rien faire c'est la préserver !!!
|
|
mardi 23 septembre 2008 à 20:12:09 |
Re : [C][Serveur TCP multiport]

mandrake73
|
Si je ne trouve pas une autres methodes je ferais ca. Mais il est possible de binder plusieurs ports avec une seul socket (c'est ce que je fais pour linstant)
|
|
mardi 23 septembre 2008 à 23:16:07 |
Re : [C][Serveur TCP multiport]

ctx_man
|
Hummm, faudrais vraiment que je me remette dans les sockets ... Sinon la solution ultime, tu implémente dans ton protocol le fait que le serveur demande au client le port sur lequel celui-ci a contacter le serveur ^^' ....
Le travail c'est la santé, ne rien faire c'est la préserver !!!
|
|
mercredi 24 septembre 2008 à 08:23:00 |
Re : [C][Serveur TCP multiport]

mandrake73
|
Ca aurait pu le faire sauf que je dois realiser une serveur http 1.1. Donc aucune liberte du cote protocole ^^
|
|
mercredi 24 septembre 2008 à 08:41:59 |
Re : [C][Serveur TCP multiport]

ctx_man
|
Tu as moyen de montrer un petit bout de code pour voir comment tu bind un socket à plusieurs ports ?
Le travail c'est la santé, ne rien faire c'est la préserver !!!
|
|
mercredi 24 septembre 2008 à 08:52:05 |
Re : [C][Serveur TCP multiport]

mandrake73
|
socket_->bind("10.10.10.10:80"); socket_->bind("10.10.10.10:443"); .... Class ServerSocket { ... struct in_addr * ServerSocket::atoaddr(const std::string & addr) { struct hostent *host; if ((host = gethostbyaddr(addr.c_str(), addr.size(), AF_INET)) == NULL) host = gethostbyname(addr.c_str()); if (host != NULL) return ((struct in_addr *) *host->h_addr_list); return (NULL); } bool ServerSocket::bind(const std::string & address) { struct in_addr *addr; unsigned short port = 80; size_t pos; pos = address.find_first_of(":"); if (pos != std::string::npos) { std::string sub = address.substr(0, pos); addr = atoaddr(sub); sub = address.substr(pos + 1, address.size()); std::istringstream iss(sub); iss >> port; } else addr = atoaddr(address); if (addr == NULL) { zFatal() << "Invalid network address: " << address; return (false); } zInfo() << "Bind to: " << inet_ntoa(*addr) << ":" << port; return (bind(addr->s_addr, port)); } }
|
|
mercredi 24 septembre 2008 à 08:53:17 |
Re : [C][Serveur TCP multiport]
|
Cette discussion est classée dans : port, serveur, tcp, multiport
Répondre à ce message
Sujets en rapport avec ce message
exemple de code TCP Pull et push d'un serveur d'image [ par joserivo ]
Tout est dans le titre.Il s'agit de l'ecriture en C++ du protocole TCP Push et TCP Pull pour acceder à un serveur multimedia.Pour detailer ces protoco
sockets et proxy [ par vangeurmasker ]
Bonjour Je dévelope une application qui récupere le code source d'une page html en se connectant sur le port 80 du serveur pas un socket. Le probleme
TCP/IP [ par maitrez ]
Bonjour à tous,je suis en train de créer une appli client et une appli serveur. L'appli client est un jeu qui représente pour l'instant une petite voi
Liste des ports TCP [ par LaTatadu91 ]
Bonjour ,voila je travaille actuellement sur un projet pour effectuer des communications utilisant le TCP/IPj'ai ainsi trouver la liste des ports util
Problème de GetDlgItem dans un thread [ par Nixeus ]
Bonjour à tous !Je développe actuellement une petite appli MFC avec visual studio 6.J'ai créer un thread qui fonctionne très bien.Dans ce thread, j'ai
Écouter un port [ par jnbrunet ]
Bonjour, je cherche depuis quelque temps une façon en c++ avec visual studio 2005 d'écouter les packets qu'envoi un application au serveur, et de me l
Probleme de port pour un serveur dédié de CS 1.6 [ par paramotdam ]
Salut,Voilà j'ai un problème de port sur counter strike 1.6.Je me connecte sur mon serveur en lan et quand des personnes viennent, je leur demande l'i
Envoie de Fichier XML a un serveur TCP [ par nico971gwada ]
Salut,Je dois envoyer un fichier xml à un serveur TCP et je ne sais absoluement pas comment faire.J'ai crée un ClientTcp puis je l'ai connecté au serv
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
fork et tcp [ par majong ]
Bobjour, peut-on faire un serveur pour multi-client avec tcp en utilisant fork ?Mon problème c'est que j'ai le programme mais sans utiliser fork, ce d
Livres en rapport
|
Derniers Blogs
POUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDNPOUR RAPPEL ! LES SPéCIFICATIONS DES PROTOCOLES OFFICE ET SHAREPOINT SONT DISPONIBLES SUR MSDN par neodante
Quelle est le point commun entre : Microsoft il y a 10 ans et Apple aujourd'hui ? Réponse: avoir une politique de protocoles propriétaires et fermés :) Car pour rappel (si si je vous assure c'est important de le rappeler), la majorité des spécifications e...
Cliquez pour lire la suite de l'article par neodante JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc
Forum
MATLAB PROGRAMME MATLAB PROGRAMME par wahab1087
Cliquez pour lire la suite par wahab1087 RGB2GRAYRGB2GRAY par musa18
Cliquez pour lire la suite par musa18
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|