Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: lluk en 24 Septiembre 2012, 22:39 pm



Título: Manual de sockets en C?
Publicado por: lluk en 24 Septiembre 2012, 22:39 pm
Hola a todos,
alguien me podría decir si este manual para programación de sockets, aún sirve, o las funciones han cambiado o algo..
http://www.eslinux.com/articulos/8591/programacion-sockets-lenguaje-c
Gracias de antemano!


Título: Re: Manual de sockets en C?
Publicado por: oPen syLar en 24 Septiembre 2012, 23:07 pm
Sin duda esta muy bien documentado.. (me lo guarde en los Bookmarks =) ) tambien en las manpages estan documentadas las funciones/estructuras POSIX y no POSIX para sockets

Código:
man socket
man recv
man send

Si quieres un ejemplo de uso.. En mi Github (http://adf.ly/D8vUh) están varias funciones que implementan sockets bajo Linux.. Si bien les falta depurarlas.. Por lo menos de ejemplo sirve =)



Título: Re: Manual de sockets en C?
Publicado por: lluk en 24 Septiembre 2012, 23:10 pm
ook! muchas gracias
entonces estos solo funcionan en linux? o también van en windows?


Título: Re: Manual de sockets en C?
Publicado por: oPen syLar en 24 Septiembre 2012, 23:29 pm
"Funcionan en ambos" Solo que en Windows tendrás que cambiar algunas estructuras y inicializar el Winsock con una función llamada WStartup() (En realidad no recuerdo bien su nombre) donde le pasas la versión a utilizar.. blabla... En MSDN esta bien documentado...


Título: Re: Manual de sockets en C?
Publicado por: Javier235 en 25 Septiembre 2012, 06:45 am
Hola a todos, alguien me podría decir si este manual para programación de sockets, aún sirve, o las funciones han cambiado o algo..
http://www.eslinux.com/articulos/8591/programacion-sockets-lenguaje-c
Gracias de antemano!

Entre Windows y Linux hay cosas que cambian porque si vos querés crear un proceso, usar pipes, etc. vas necesitar usar las syscalls del sistema y éso ya sería específico del kernel.

Ahora, si vos programás en ANSI C debería ser lo mismo, lo que pasa que si uno mira las syscalls de linux se confunde un poco porque pensás que son parte del lenguaje C ya que te devuelven datos que son propios de C y los nombres también se prestan para la confusión. En Windows ves que devuelve cosas raras como un handler, etc y lo diferenciás ahí nomás jeje (leé alguna edición de "Windows Internals" si te interesa).

Te recomiendo Advanced Linux Programming, el capítulo 5 sobre IPC: http://www.advancedlinuxprogramming.com/alp-folder/ que habla sobre sockets en una parte.

Bajate NetCat u otra cosa que sea media cortita y léela... Y capaz que "El lenguaje de programación C" de Kernighan y Ritchie también te pueda servir (vas a ver que tiene ejercicios pavos... pero es un libro que no tiene desperdicio, fíjate el capítulo 8 que habla algo sobre sistemas unix).