Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Программирование под Unix/Linux > struct sockaddr_in


Автор: knighter 12.6.2006, 06:20
Ни как не могу скомпилить простую программу, использующую сокет.
Компилер орет "aggregate `struct sockaddr_in addr' has incomplete type and cannot be initialized".

Перерыл много всего, ответ не нашел. Как лечить?  

Автор: ptr 12.6.2006, 10:15
Видимо ты объявляешь
 
Код

sockaddr_in addr;

Попробуй 
Код

 struct sockaddr_in addr;
 

Автор: GrayCardinal 12.6.2006, 13:23
ptr
Хмм... Кажись белк у нас уже есть. Только не помню кто smile 

Автор: knighter 13.6.2006, 03:00
Нет, я как раз и пишу

Код

struct sockaddr_in


Оказалось, что  не хватало в инклудах одного файла, причем во многих примерах в сети, он явно отсутствует.
Теперь все нормально компилится, за исключением такой же проблеммы с функцией close(). Ну тут уж я  вообще не знаю чего ему надо.

В заголовках у меня
Код

#include "sys/types.h"
#include "sys/socket.h"
#include "arpa/inet.h"
#include "stdlib.h"
#include "stdio.h"
#include "string.h"
#include "errno.h"
#include "fcntl.h"
#include <netinet/in.h>
#include <netdb.h>

 

Автор: GrayCardinal 13.6.2006, 06:07
У fcntl'я скобки не те. 
Потребно
#include <fcntl.h>

Добавлено @ 06:11 
Да и не только у него, у всех остальных тоже.  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)