#include //pour memcpy au moins #include //perror #include #include //constantes, sockaddr generique, socket... #include "sock.h" ///////////////////////////////////////////////////////////////// int Sock::sockaddLocRempli( const char * nomServ, const char *protoServ){ struct servent *srv; /* pour recuperer les param du service */ adrSock.sin_family = sDom; /* on recupere sa propre adresse internet */ adrSock.sin_addr.s_addr = INADDR_ANY; /* recherche des parametres du service qu'on veut assurer*/ srv = getservbyname (nomServ, protoServ); if (srv == NULL){ cout <s_port; /* numero de port du service */ return sizeof(adrSock); } ///////////////////////////////////////////////////////////////// int Sock::sockaddLocRempli( short numPort){ adrSock.sin_family = sDom; /* on recupere sa propre adresse internet */ adrSock.sin_addr.s_addr = INADDR_ANY; adrSock.sin_port = htons(numPort); /* numero de port direct */ return sizeof(adrSock); } ///////////////////////////////////////////////////////////////// int Sock::bind(int desc, const char * nomServ, const char *protoServ){ int lg = sockaddLocRempli(nomServ, protoServ); if ((sRetour=::bind(desc,(struct sockaddr *)&adrSock,lg))<0) perror ("pb bind"); } ///////////////////////////////////////////////////////////////// int Sock::bind(int desc, short nport){ int lg = sockaddLocRempli(nport); if ((sRetour=::bind(desc,(struct sockaddr *)&adrSock,lg))<0) perror ("pb bind"); } ///////////////////////////////////////////////////////////////// void Sock::initparam(){ sRetour=-1; } ///////////////////////////////////////////////////////////////// Sock::Sock(int tip, int protocole){ //tip contient SOCK_DGRAM ou SOCK_STREAM ou ... initparam(); //cout <<"constructeur int,int appele"<=0 && sDesc>0); } ///////////////////////////////////////////////////////////////// int Sock::getsDesc(){ return sDesc; } ///////////////////////////////////////////////////////////////// int Sock::getsRetour(){ return sRetour; }