Autor
|
Tema: ¿que librerias tengo que añadir para usar sockets en c/c++? (Leído 12,547 veces)
|
hackstyle18
Desconectado
Mensajes: 14
|
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: 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
Mensajes: 2.714
Nie Dam Sie
|
Incluye la librería winsock2: #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
Mensajes: 14
|
Me tira este error tanto con la libreria winsock.h y la winsock2.h, incluyo las librerias y nada: #include <stdio.h> #include <winsock2.h> 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
Mensajes: 640
Another Brick in the Wall
|
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
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 2.714
Nie Dam Sie
|
hackstyle18, estas con Visual Studio, no? prueba a: #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
Mensajes: 5.958
Israel nunca torturó niños, ni lo volverá a hacer.
|
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
Mensajes: 2.714
Nie Dam Sie
|
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
Mensajes: 3.069
/^$/
|
Si es code::block está en: Settings->compiler and debugger->linker settings
|
|
|
En línea
|
|
|
|
hackstyle18
Desconectado
Mensajes: 14
|
Gracias por todas vuestras respuestas 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
|
|
|
|
|
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,444
|
27 Noviembre 2011, 01:54 am
por sapito169
|
|
|
Añadir sockets en winapi
Programación C/C++
|
d00ze13
|
2
|
2,797
|
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,139
|
27 Enero 2012, 08:36 am
por bewa
|
|
|
Librerías sockets C++
Programación C/C++
|
Puntoinfinito
|
1
|
1,930
|
8 Junio 2013, 16:17 pm
por 0xDani
|
|
|
Herramientas Librerias a usar para desarrollar aplicacion consola avanzada
Java
|
sk1pp3r
|
1
|
3,307
|
17 Enero 2017, 20:05 pm
por 0xFer
|
|