Statut d'une socket en C++

Fermé
int0x21 Messages postés 27 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 8 janvier 2004 - 1 avril 2003 à 10:44
 marvinrouge - 9 avril 2003 à 21:38
Hello all,
Voila mon but est de déterminer,quelle est le statut d'une socket seulement en le faisant disons manuellement sans utiliser le composant activeX de Builder 5.En fait j'aimerais savoir comment fait la composant pour savoit le statut de la socket car je suis entrain de créer une classe de socket qui fera la meme chose (en gros) que cette activeX plus quelque trucs en plus.

De plus étant un débutant en C++ j'aimerai savoir comment on fait pour instancier une classe dans un fichier principal main(la classe se situant dans un fichier externe).Que faut t-il insérer,que faut t-il rajouter dans l'include.
Merci de votre contribution.
Bye
A voir également:

4 réponses

***Classe.hpp***

class Toto {
public:
Toto();
Toto(int i);
Toto(const Toto&);
void m();
private:
int n;
};

***Classe.cpp***
#include "Classe.hpp"

Toto::Toto() { // constructeur sans argument
n= 0;
}
Toto::Toto(int i) { // constructeur avec un entier en argument
n = i;
}

Toto::Toto(const Toto& t) { // constructeur DE COPIE
if (&t!=this) // pour ne RIEN faire si on écrit a =a; => GROS DANGERS si champs dynamlqiues dans la classe ...
{
n = t.n;
}
return *this;
}

Toto::m() {

}

***Main.cpp***
#include "Classe.hpp"

void main(void) {
Toto t1; // variable 'automatique' => destruction automatique
Toto* t2 = NULL; // variable 'dynamique' => allocation (new) et destrcution (libération mémoire par delete) à la charge du développeur
t2 = new Toto(); // appel u constrcuteur sans arguments

Toto* t3 = NULL;
t3 = nrw Toto(4);

Toto t4(t1);

Toto* t5 = NULL;
t5 = nrw Toto(t1);

if (t2!=NULL) {
delete t2;
t2 = NULL; // facultatif mais FORTEMENT conseillé
}
if (t3!=NULL) {
delete t3;
t3 = NULL; // facultatif mais FORTEMENT conseillé
}
if (t5!=NULL) {
delete t5;
t5 = NULL; // facultatif mais FORTEMENT conseillé
}
}
0
int0x21 Messages postés 27 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 8 janvier 2004
1 avril 2003 à 11:30
Merci bien de ta réponse !
Bye.
0
marvinrouge > int0x21 Messages postés 27 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 8 janvier 2004
9 avril 2003 à 21:38
de rien.

marvinrouge
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
1 avril 2003 à 10:56
Si c'est sous Windows, tu peux taper directement dans l'API Winsock.
http://www.vbip.com/winsock-api/resources/msresources.asp
0
int0x21 Messages postés 27 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 8 janvier 2004
1 avril 2003 à 11:56
Merci à toi pour ce lien.
J'ai omis de préciser que je développe sous windows XP avec l'EDI C++ Builder 5 mais je suis entrain de développer mes propres classes pour gérer la création de sockets de différents types(TCP,UDP,RAW,ICMP...).Cepandant je ne sais pas si tu as dejà travaillé avec cet EDI ou DELPHI(c'est du pareil au même) mais lorsque tu utilise un composant TTCP (qui est en fait un activeX: mswinsck.ocx),alors ton programme ne marche que sur ta bécane.Si tu l'execute sur une autre box on a droit au message d'erreur:"classe non inscrite".
D'ou ma motivation de réécrire des classes équivalentes en C++.
Cepandant je me demandais un truc:
Comment fait le composant pour savoir le statut d'une socket à un moment donné?(par exemple losqu'in fait TCP1->State;).
Toi par exemple pour savoir si une socket est en écoute ou pas tu ferais comment ? tu tente un listen et si ca marche pas c'est que la socket est en écoute???
Merci beaucoup.
Bye.
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659 > int0x21 Messages postés 27 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 8 janvier 2004
1 avril 2003 à 12:12
En fait sous Windows je suis toujours passé par TTCP (Delphi).
Je n'ai fait de la programmation socket pur que sous Unix.

Je n'ai jamais tapé dans l'API Winsock.
Je présume qu'il y a des callbacks pour le changement d'état ?
0
int0x21 Messages postés 27 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 8 janvier 2004 > sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019
1 avril 2003 à 17:47
Yo SebSauvage,
Justement c'est tout l'objet de mon interrogation.J'aimerais resoudre ce problème une bonne fois pour toute.Je ne trouve pas ce que je veux sur le net...
Bye
0
sebsauvage Messages postés 32893 Date d'inscription mercredi 29 août 2001 Statut Modérateur Dernière intervention 21 octobre 2019 15 659
1 avril 2003 à 18:01
Tu as regardé dans la doc de l'API Winsock ?
Sinon Google devrait ramener des résultats:

par exemple avec les mots (essayer des combinaisons):
winsock api C++ example tutorial examples tutorials sockets windows
0
int0x21 Messages postés 27 Date d'inscription lundi 31 mars 2003 Statut Membre Dernière intervention 8 janvier 2004
1 avril 2003 à 18:25
Yo,
Bien sur j'ai plein de tuts la dessus mais aucun ne correspondait précisément à ma requete.
Merci quand même.
Bye
0