elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Problemita con sockets
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Problemita con sockets  (Leído 5,569 veces)
pacosn1111

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Problemita con sockets
« Respuesta #10 en: 19 Mayo 2016, 15:46 pm »

Como detalle:
Código
  1. while(1) send(fd_client, "hola", 100, 0);
El tercer argumento es el tamaño de la cadena. En este caso, debería ser 4, o 5 si quieres enviar el caracter nulo.

A parte de eso: en el header declaras fd, fd_client y fs_server, como extern. En los main, debes usar esas variables. No tienes que declararlas de nuevo: ya están declaradas en ss.c. Quita las declaraciones de esas variables en los main, y prueba de nuevo.

Ostras, ya funciona, muchas gracias, pero es que yo tenía entendido que cuando tu declaras una variable en un header como extern, sólo estás diciendo que esa variable va a ser compartida, y que por ende hay que declararlo en cada fichero que se use.


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Problemita con sockets
« Respuesta #11 en: 19 Mayo 2016, 16:07 pm »

Una variable extern significa que existe, pero está en otro lugar. Si declaras una variable extern y luego no la declaras de forma normal, verás que te da una "undefined reference" al enlazar. Es porque no encuentra su declaración.


En línea

pacosn1111

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Problemita con sockets
« Respuesta #12 en: 19 Mayo 2016, 16:18 pm »

Una variable extern significa que existe, pero está en otro lugar. Si declaras una variable extern y luego no la declaras de forma normal, verás que te da una "undefined reference" al enlazar. Es porque no encuentra su declaración.

Por eso mismo, lo que he hecho es quitar la declaración de servidor.c y cliente.c, ¿Por que no da error?, es que en otro code que tengo, mucho más complejo, la declaración tengo que hacerla tanto en la biblioteca como en el resto de ficheros, sino me da ese error.
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Problemita con sockets
« Respuesta #13 en: 19 Mayo 2016, 16:22 pm »

No da error porque es correcto. Tal vez en el otro proyecto no enlazaste el código objeto de la librería, no sé.
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problemita con win avi 6.3
Multimedia
jarumi 2 2,107 Último mensaje 20 Febrero 2006, 19:37 pm
por ™Carlos.®
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines