Programación General > C/C++
Re: sockets
JuanK:
no lo se, lo que sucede es que esa libsocket.a , esta compilada por eso no puedes ver su conteniodo, hay comendo que permiten ver los simbolos que poseen, pero para mi es mucho mejor copiar una nueva que ponerme a revisar ... no crees?.. copiala y listo, de internet bajas un zip, lo descomprimes y buscas el libsocket.a, luego guarda el que tienes en tu pc, en una carpte diferente y reemplazalo por el nuevo.
juank
reckba2:
al compilar de esta forma :gcc cliente.c -lsocket, me arrojaba este tipo de error:
__nsl_getprotoent /usr/sde/default/usr/lib/libsocket.so
h_errno /usr/sde/default/usr/lib/libsocket.so
__nsl_getprotobynumber /usr/sde/default/usr/lib/libsocket.so
Mi pregunta es que pasa con la libreria libsocket.so, puede ser que esta falte, o las dos?
Saludos
JuanK:
puede ser que tambien este dañada... lo que pasa es la la libsocket so es la misma libsocket.a pero esta es para linkear dinamicamente, en cambio la .a, linkea estaticamente... esta muy raro, pero ya que copiaste la .a.. copia tambien la .so
reckba2:
El comando bcopy copia los bytes de una area a otra, pero la verdad que no entiendo lo que hace
hp = gethostbyname(argv[1])
bcopy((char *)hp->h_addr, (char *)&cliente.sin_addr, hp->h_length)
y argv[1] es el nombre del host
Si me puedes ayudar con este de lo agradeceria.
Saludo
JuanK:
Esta funcion recibe un apuntador a una region de memoria y copia asigna una cantidad determianada de bits a otra area de memoria por medio de otro apuntador.
Lo del (char*) creo que sobraria generalmente, pero en la U se implemento asi , probablemente por compatibilidad con la version(vieja) del compilador.
con gethostbyname , obtenemos todos los datos de conexion con el host, a travez del nombre, es decir le pasamos el nombre y el nos llena campos como la ip, seguramente que el numero de socket remoto etc., y lo que hacemos con
bcopy((char *)hp->h_addr, (char *)&cliente.sin_addr, hp->h_length)
es copiar el contenido de un apuntador en otro..OJO que no es lo mismo a copiar la direccion de memoria de un a puntador a otro.
Si te fijas lo que copiamos es unicamente el area de datos correspondiente a la direccion del sock, y esto es para que en el socket del cliente se conozca la direccion del host.
Creo que este programa estaba algo complicado para comenzar, pero la cerdad no tenia tiempo para hacer uno bien sencillo, te pido disculpas por eso, solo espero no estar te poniendo en muchos problemas...
Juank
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa