Bienvenido!

¡Se bienvenido!

viernes, 4 de marzo de 2011

Clase socket portable Windows - Linux (C++ Portable sockets)

¡Saludos a todos!

He hecho una pequeña abstracción para utilizar sockets en Windows y Linux indistintamente.

La clase es bastante sencilla y basta con hacer un include de ella.

El constructor inicializa la API Winsock2 2.2 en el caso de Windows y en el de Linux, incluye las cabeceras necesarias. También nos da un socket listo para trabajar con él.

El destructor cierra el socket y libera los recursos.

Métodos públicos:

   portable_socket(void);
   int pbind (const struct sockaddr *addr, socklen_t addrlen);
   int plisten(int backlog);
   portable_socket* paccept(struct sockaddr *addr, socklen_t *addrlen);
   int pconnect(const struct sockaddr *addr, socklen_t addrlen);
   int psend(const void *buf, size_t len, int flags);
   int precv(void *buf, size_t len, int flags);
   void set_fd(SOCKET s);
   SOCKET get_fd();
   int get_last_error();
    ~portable_socket(void);

La 'p' de delante de cada nombre indica "portable", y no he metido funciones extra como sendto y recvfrom pero es bastante fácil añadirlas :)

Espero que sea útil :)

Enlace con el código: http://paste2.org/p/1280475 (Están los dos ficheros en el mismo paste)

2 comentarios:

Anónimo dijo...

Hola. me tope con tu pagina. Aun posees el codigo disponible?

Alberto dijo...

Hola buenas, lo tengo sip. No pensé que en la web esa de paste2.org caducaran los enlaces.

He subido los ficheros a mi server:

http://betovserver.no-ip.org/portable_socket.cpp
http://betovserver.no-ip.org/portable_socket.h

Si tienes dudas de como se usan, preguntame :)

Publicar un comentario

Se respetuoso y escribe en español correcto please!!