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

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ¿que librerias tengo que añadir para usar sockets en c/c++?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ¿que librerias tengo que añadir para usar sockets en c/c++?  (Leído 12,647 veces)
hackstyle18

Desconectado Desconectado

Mensajes: 14


Ver Perfil
¿que librerias tengo que añadir para usar sockets en c/c++?
« en: 13 Julio 2010, 21:32 pm »

Buenas pues intento compilar este ejemplo pero añado la libreria de winsock, pero soy nuevo en esto de sockets en c y nose si ai que añadir alguna mas. aqui dejo el source del programa que intento compilar, es un cliente:

Código:
int main()
{
WSADATA wsa;
SOCKET sock;
struct hostent *host;
struct sockaddr_in direc;
int conex;
char Buffer[1024];
int len;
//Inicializamos
WSAStartup(MAKEWORD(2,2),&wsa);
//resolvemos el nombre de dominio localhost, esto se resolverá a 127.0.0.1
host=gethostbyname("localhost");
//creamos el socket
sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (sock==-1)
{
printf("Error al crear el socket");
return -1;
}
//Definimos la dirección a conectar que hemos recibido desde el gethostbyname
//y decimos que el puerto al que deberá conectar es el 9999 con el protocolo ipv4
direc.sin_family=AF_INET;
direc.sin_port=htons(9999);
direc.sin_addr = *((struct in_addr *)host->h_addr);
memset(direc.sin_zero,0,8);
//Intentamos establecer la conexión
conex=connect(sock,(sockaddr *)&direc, sizeof(sockaddr));
if (conex==-1) //si no se ha podido conectar porque no se ha encontrado el host o no
//está el puerto abierto
{
printf("No se ha podido conectar\n");
return -1;
}
printf("[MiniXat para tutorial de sockets MazarDZone Foro]\n");
printf("[escribe el texto a enviar o 'salir' para salir ]\n");
while (len!=-1 && strcmp(Buffer,"salir")!=0) //mientras el socket no se haya desconectado
//y no se escriba salir
{
printf("Texto a enviar:");
fgets(Buffer,1023,stdin); //pedir texto a enviar por pantalla
len=send(sock,Buffer,strlen(Buffer),0); //enviar el texto que se ha introducido
}
return 0;
}


En línea

Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: ¿que librerias tengo que añadir para usar sockets en c/c++?
« Respuesta #1 en: 13 Julio 2010, 21:35 pm »

Incluye la librería winsock2:

Código
  1. #include <winsock2.h>

Si no funciona, postea el error de compilación.

Saludos


En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
hackstyle18

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: ¿que librerias tengo que añadir para usar sockets en c/c++?
« Respuesta #2 en: 13 Julio 2010, 21:40 pm »

Me tira este error tanto con la libreria winsock.h y la winsock2.h,

incluyo las librerias y nada:

Código:
#include <stdio.h>
#include <winsock2.h>


Código:
D:\Documents and Settings\manuyelvira\Escritorio\Cliente.o:Cliente.c:(.text+0x45)||undefined reference to `_WSAStartup@8'|
D:\Documents and Settings\manuyelvira\Escritorio\Cliente.o:Cliente.c:(.text+0x54)||undefined reference to `_gethostbyname@4'|
D:\Documents and Settings\manuyelvira\Escritorio\Cliente.o:Cliente.c:(.text+0x79)||undefined reference to `_socket@12'|
D:\Documents and Settings\manuyelvira\Escritorio\Cliente.o:Cliente.c:(.text+0xbb)||undefined reference to `_htons@4'|
D:\Documents and Settings\manuyelvira\Escritorio\Cliente.o:Cliente.c:(.text+0x119)||undefined reference to `_connect@12'|
D:\Documents and Settings\manuyelvira\Escritorio\Cliente.o:Cliente.c:(.text+0x1e2)||undefined reference to `_send@16'|
||=== Build finished: 6 errors, 0 warnings ===|
En línea

@synthesize
Wiki

Desconectado Desconectado

Mensajes: 640


Another Brick in the Wall


Ver Perfil WWW
Re: ¿que librerias tengo que añadir para usar sockets en c/c++?
« Respuesta #3 en: 13 Julio 2010, 21:46 pm »

Has copiado algo del enlace que te puse en el otro post? Te recuerdo que era para GNU/Linux y parece que estás compilando bajo windows.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: ¿que librerias tengo que añadir para usar sockets en c/c++?
« Respuesta #4 en: 13 Julio 2010, 21:46 pm »

Esos son errores al enlazar, te falta la libreria de importacion, necesitas pasarle al enlazador esto: -lwsock32.


No se que IDE estaras usando, con suerte podes agregarlo en:
Project>>Project Options>>Parameters.
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: ¿que librerias tengo que añadir para usar sockets en c/c++?
« Respuesta #5 en: 13 Julio 2010, 21:49 pm »

hackstyle18, estas con Visual Studio, no? prueba a:

Código
  1. #pragma comment( lib, "ws2_32.lib" )

O bien agrega Ws2_32.lib a las dependencias adicionales en la configuración del linker.

Saludos!

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.969


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: ¿que librerias tengo que añadir para usar sockets en c/c++?
« Respuesta #6 en: 13 Julio 2010, 21:56 pm »

No, el mismo tipo de error con estilo VC++:

Cliente.obj : error LNK2019: unresolved external symbol __imp__MessageBoxA@16 referenced in function _main
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Littlehorse
All the world's a stage
Moderador
***
Desconectado Desconectado

Mensajes: 2.714


Nie Dam Sie


Ver Perfil WWW
Re: ¿que librerias tengo que añadir para usar sockets en c/c++?
« Respuesta #7 en: 13 Julio 2010, 22:01 pm »

Si, es verdad, viendo bien los errores parece mas Code::Blocks. Si es ese el caso, olvidate del pragma y revisa la configuración del proyecto para agregar los parámetros adicionales al linker, tiene que estar mas o menos por donde te menciono EI.

Saludos
En línea

An expert is a man who has made all the mistakes which can be made, in a very narrow field.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: ¿que librerias tengo que añadir para usar sockets en c/c++?
« Respuesta #8 en: 13 Julio 2010, 23:28 pm »

Si es code::block está en:
Settings->compiler and debugger->linker settings
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
hackstyle18

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: ¿que librerias tengo que añadir para usar sockets en c/c++?
« Respuesta #9 en: 14 Julio 2010, 00:27 am »

Gracias por todas vuestras respuestas :P e tenido que salir y no e podido verlo antes, probare las soluciones que me dais, seguro que si que es lo de añadir los parametros al enlazador del code::blocks, ^^ gracias ;)

EI: juntando mensajes.

Gracias, ya lo e solucionado añadiendo la libreria del SDK al linker del code::blocks

gracias a todos , Saludos ;)
« Última modificación: 14 Julio 2010, 01:07 am por Eternal Idol » En línea

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

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Realmente tengo que usar clases cuando puedo simplemente usar Querys?
Java
Aikanáro Anário 3 3,475 Último mensaje 27 Noviembre 2011, 01:54 am
por sapito169
Añadir sockets en winapi
Programación C/C++
d00ze13 2 2,835 Último mensaje 30 Noviembre 2011, 20:00 pm
por d00ze13
Mi algoritmo para eliminar datos de un array (tengo que usar 5 arrays)
Java
KaRaLLo 2 5,160 Último mensaje 27 Enero 2012, 08:36 am
por bewa
Librerías sockets C++
Programación C/C++
Puntoinfinito 1 1,961 Último mensaje 8 Junio 2013, 16:17 pm
por 0xDani
Herramientas Librerias a usar para desarrollar aplicacion consola avanzada
Java
sk1pp3r 1 3,461 Último mensaje 17 Enero 2017, 20:05 pm
por 0xFer
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines