Problema con sockets en linux

Iniciado por DaniekL, 6 Marzo 2013, 19:07 PM

0 Miembros y 1 Visitante están viendo este tema.

DaniekL

Buenas, tengo este código que su idea es ser un pequeño cliente de irc, pero por ahora solo crea y conecta el socket. El problema viene al compilar:

$ gcc ircclientlinux.c
ircclientlinux.c: En la función 'main':
ircclientlinux.c:13:21: error: no se conoce el tamaño de almacenamiento de 'addr'


El código es el siguiente:
#include <unistd.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>

#define PORT 6667
#define SERVER "128.237.157.136"

int main(void) {

int sockfd;
struct sockaddr_in addr;

if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
printf("Error al crear el socket\n");
return 0;
}
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
addr.sin_addr.s_addr = inet_addr(SERVER);
bzero(&(addr.sin_zero), 8);

if(connect(sockfd, (struct sockaddr *) &addr, sizeof(struct sockaddr)) == -1) {
printf("Error al conectar al servidor\n");
}

return 0;
}

0xDani

Te falta el header netinet/in.h, en el que esta definida la estructura sockaddr_in.

Saludos.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

DaniekL


0xDani

I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM