Sockets : port local

Helkanen Messages postés 54 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 9 juin 2004 - 16 avril 2004 à 10:07
Anormal13 Messages postés 24 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 22 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...)

merci d'avance

Helkanen

4 réponses

jsonor Messages postés 49 Date d'inscription mercredi 12 février 2003 Statut Membre Derniè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.

:shy)

@+
Jérôme
0
jsonor Messages postés 49 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 5 septembre 2006
17 avril 2004 à 01:23
désolé, je voulais mettre "c pas très clair ton message"...
:shy)
0
Helkanen Messages postés 54 Date d'inscription mardi 24 décembre 2002 Statut Membre Derniè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...

Helkanen
0
Anormal13 Messages postés 24 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 22 février 2006
12 juil. 2005 à 11:49
J'avoue que j'ai du mal a saisir aussi tu veux tout simplement scané ton pc en local et savoir quel port est ouvert??
0
Rejoignez-nous