Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: [C] Создание сокета  (Прочитано 816 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн CynicRus

  • Автор темы
  • Любитель
  • *
  • Сообщений: 78
    • Просмотр профиля
[C] Создание сокета
« : 17 Февраль 2012, 11:54:18 »
Доброго времени суток господа.
Создаю сокет следующим образом:
#include <stdlib.h>
#include <unistd.h>
#include <sys/socket.h>
#include <errno.h>
#include <sys/types.h>
#include <netdb.h>
#include <string.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <netinet/in.h>


int CreateSocket(uint16_t port)
{ int sock;
  struct sockaddr_in sname;
  sock = socket (PF_INET, SOCK_STREAM,0);
  if (sock < 0) {
          perror("socket");
          return EXIT_FAILURE;
  }
  sname.sin_family = AF_INET;
  sname.sin_port = htons (port);
  sname.sin_addr.s_addr = htonl (INNADR_ANY);
  if (bind (sock,(struct sockaddr *)& sname,sizeof(sname)) < 0)
           {
           perror("bind");
           return EXIT_FAILURE;
           }
     return sock;
}

Но - компилятор упорно говорит, что - /ошибка: «INNADR_ANY» undeclared (first use in this function).
Система - Ubuntu 11.10, gcc версия 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3). В чем может быть затык? Уже весь мозг себе сломал. Заранее благодарен за помощь.

Пользователь решил продолжить мысль 17 Февраль 2012, 12:05:06:
Вообщем он был в том, что я замыленым глазом - написал вместо INADDR_ANY - INNADR_ANY-)
« Последнее редактирование: 17 Февраль 2012, 12:05:06 от CynicRus »
"Only two things are infinite, the universe and human stupidity... and I'm not sure about the universe."  -- Albert Einstein

Оффлайн S_F_H

  • Участник
  • *
  • Сообщений: 129
  • Да будет crossplatform!
    • Просмотр профиля
Re: [C] Создание сокета
« Ответ #1 : 18 Февраль 2012, 03:03:38 »
  sock = socket (PF_INET, SOCK_STREAM,0);
AF_INET а не PF при получении дескриптора сокета.
« Последнее редактирование: 18 Февраль 2012, 03:09:14 от S_F_H »

Оффлайн egorchik007

  • Участник
  • *
  • Сообщений: 156
    • Просмотр профиля

Оффлайн dimmmy

  • Новичок
  • *
  • Сообщений: 6
    • Просмотр профиля
Re: [C] Создание сокета
« Ответ #3 : 28 Февраль 2012, 09:42:23 »
Вот тестовый пример - посмотри, может помочь.

Оффлайн Olej

  • Забанен
  • Активист
  • *
  • Сообщений: 884
    • Просмотр профиля
Re: [C] Создание сокета
« Ответ #4 : 28 Февраль 2012, 10:43:50 »
Вот тестовый пример - посмотри, может помочь.
я думаю, что автор уже разобрался (ему по существу подсказали, я где-то на другом форуме видел),
неправильно записано:
htonl (INNADR_ANY);должно быть:
htonl (INADDR_ANY);

 

Страница сгенерирована за 0.252 секунд. Запросов: 24.