Helkanen
Messages postés54Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention 9 juin 2004
-
16 avril 2004 à 10:07
Anormal13
Messages postés24Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention22 février 2006
-
12 juil. 2005 à 11:49
salut !
j'aimerais savoir comment avec une socket toute bête on peut récupérer le port local ouvert, si cela est possible...
de même que l'ip locale qui correspond à la voie de communications ouverte... (ça doit être dans les sources ça...)
jsonor
Messages postés49Date d'inscriptionmercredi 12 février 2003StatutMembreDernière intervention 5 septembre 2006 17 avril 2004 à 01:22
Salut,
C pas très ton pb....déjà, c sous linux ou windows ? parce que c pas géré pareil, c pas les mêmes libraires , etc....
J'imagine que tu sais créer une socket et tout alors. Donc pour récupérer le port et l'ip :
Pour windows, t'as une classe CSocket qui fait pas mal de trucs, mais tu peux toujours utiliser les WSADATA, SOCKADDR_IN et cie....mais dans ce cas ca devient du pseudo linux.
Et pour linux, aaah, on y vient, c le membre sin_port de ta structure sockaddr_in du serveur (donc de ton pc hôte ou serveur).
Pour l'ip, c'est : inet_ntoa(m_client_address.sin_addr) avec m_client_address étant ta structure sockaddr_in pour le client qui est connecte. (la fonction inet_ntoa retourne un char* au fait ;) )
Je vais essayer de poser une source claire rapidement sur les sockets sous linux parce que celles qui existent marchent pas toutes bien...J'ai eu du mal à en trouver de bonnes en tous cas.
Helkanen
Messages postés54Date d'inscriptionmardi 24 décembre 2002StatutMembreDernière intervention 9 juin 2004 17 avril 2004 à 14:32
oui , c'est vrai que c'est pas très clair... dsl
en fait voici mon probleme :
je fais une classe de gestion des sockets fonctionnant en multithread... pour l'instant c'est du win32, mais je compte bien la rendre portable linux/win32
nan en fait ce que je veux c'est pas l'adresse IP de l'hote, ça je sais faire (remote.sin_addr et remote.sin_port)
mais c'est le port ouvert sur le pc local, quand on ouvre une connexion avec connect()...
pour l'ip locale, je sais qu'il y a moyen, j'ai déjà vu des sources traitant du pb...