С Новым годом! Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452

Сокеты в Fedora 14

22.05.2011, 20:29. Показов 2651. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо написать программу для передачи бинарных по сети по протоколам tsp и udp под ос Fedora 14.

В качестве базового примера решил использовать http://www.rsdn.ru/article/unix/sockets.xml

начиная с листинга 1, 2 компилятор заявил
1

/home/nikooolay/test/src/main.cc:34:24: ошибка: нет декларации ‘perror’ в этой области видимости
/home/nikooolay/test/src/main.cc:35:15: ошибка: нет декларации ‘exit’ в этой области видимости
/home/nikooolay/test/src/main.cc:43:22: ошибка: нет декларации ‘perror’ в этой области видимости
и тд


Зы ниразу не линксойд, какую лучше использовать среду для разработки подобной задачи?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.05.2011, 20:29
Ответы с готовыми решениями:

После установки второй ОС Fedora, и лодер Windows, и лодер Fedora не отображаются в bios boot options,
В общем ситуация такая: решил установить федору второй ос. Скачал на флешку, все по гайдику, когда устанавливал, выбрал автоматическую...

Php сокеты и unix-сокеты
Здравствуйте, есть программа, написанная на С под Linux. При её работе в памяти хранятся несколько массивов, которые необходимо обработать...

Различия в Fedora
Подскажите в чем различия 1. Сборка Fedora 15 2. Сборка Fedora 15 с KDE 3. Сборка Fedora 15 с LXDE 4. Сборка Fedora 15 с Xfce ...

11
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
22.05.2011, 20:44
в файле main.cc не хватает инклуда:
C
1
#include <stdlib.h>
1
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452
22.05.2011, 20:47  [ТС]
Остались ошибки:
/home/nikooolay/test/src/main.cc:35:24: ошибка: нет декларации ‘perror’ в этой области видимости
/home/nikooolay/test/src/main.cc:66:19: ошибка: нет декларации ‘close’ в этой области видимости
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
22.05.2011, 21:19
C
1
2
#include <stdio.h>
#include <unistd.h>
1
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452
22.05.2011, 22:17  [ТС]
Спасибо.
Теперь возник следующий вопрос.
а как собственно клиент получает адрес сервера ?
0
Формучанин
364 / 296 / 42
Регистрация: 02.11.2010
Сообщений: 1,245
22.05.2011, 23:32
Цитата Сообщение от nikooolay Посмотреть сообщение
Спасибо.
Теперь возник следующий вопрос.
а как собственно клиент получает адрес сервера ?
наверное он указан гдето в коде.(мне лень код читать)
0
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452
23.05.2011, 10:19  [ТС]
Как вариант это переменная AF_INET, но откуда она берет значения
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
23.05.2011, 10:43
Не, AF_INET это не переменная и вообще не адрес.
Адрес у вас INADDR_LOOPBACK т.е 127.0.0.1
1
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452
23.05.2011, 14:55  [ТС]
и так в програме клиента указал следующее
addr.sin_addr.s_addr = inet_addr ("192.168.1.2");

при работе возникает ошибка
No route to host

Маршруты клиента

/sbin/iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Между кмпами минг есть, файрволы отключены
0
1259 / 650 / 44
Регистрация: 06.02.2011
Сообщений: 1,654
24.05.2011, 11:34
А где маршруты то?
И вы бы кода кусочек показали что-ли.
0
15 / 15 / 2
Регистрация: 20.11.2009
Сообщений: 452
24.05.2011, 15:14  [ТС]
по ссылке ж пример.
вот уже немного доработанный
сервер
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <sys/types.h>
#include <sys/socket.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main()
{
    int sock, listener;
    struct sockaddr_in addr;
    char buf[1024];
    int bytes_read;
 
    listener = socket(AF_INET, SOCK_STREAM, 0);
    if(listener < 0)
    {
        perror("socket");
        exit(1);
    }
    
    addr.sin_family = AF_INET;
    addr.sin_port = htons(3425);
    addr.sin_addr.s_addr = htonl(INADDR_ANY);
    if(bind(listener, (struct sockaddr *)&addr, sizeof(addr)) < 0)
    {
        perror("bind");
        exit(2);
    }
 
    listen(listener, 1);
    
    while(1)
    {
        sock = accept(listener, NULL, NULL);
        if(sock < 0)
        {
            perror("accept");
            exit(3);
        }
 
        while(1)
        {
            bytes_read = recv(sock, buf, 1024, 0);
            if(bytes_read <= 0) break;
            send(sock, buf, bytes_read, 0);
        }
    
        close(sock);
    }
    
    return 0;
}
Клиент
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>
char message[] = "Hello there!\n";
char buf[sizeof(message)];
 
int main()
{
    int sock;
    struct sockaddr_in addr;
 
    sock = socket(AF_INET, SOCK_STREAM, 0);
    if(sock < 0)
    {
        perror("socket");
        exit(1);
    }
 
    addr.sin_family = AF_INET;
    addr.sin_port = htons(3425); // или любой другой порт...
    //addr.sin_addr.s_addr = htonl(INADDR_ANY);
    addr.sin_addr.s_addr = inet_addr ("192.168.1.2");
 
 
    if(connect(sock, (struct sockaddr *)&addr, sizeof(addr)) < 0)
    {
        perror("connect");
        exit(2);
    }
 
    send(sock, message, sizeof(message), 0);
    recv(sock, buf, sizeof(message), 0);
    
    printf(buf);
    close(sock);
 
    return 0;
}
0
Nikku
24.05.2011, 16:57
Коль, напиши "route -n" это и есть список маршрутов, а iptables -L -n это совсем не то (мы тупанули когда это писали). И еще, по идее чтобы была связь с айпишником внутри одного сегмента сети, нам достаточно маршрута на непосредственно подключенную сеть, а он и так прописывается по-умолчанию.
З.Ы.: все, поумничал, ухожу, жду подсказок более продвинутых пользователей насчет ошибки функции connect: No route to host.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2011, 16:57
Помогаю со студенческими работами здесь

Загрузка Fedora
Почему дальше не загружается???

ltsp Fedora
Здравствуйте! Пытаюсь создать ltsp образ в Fedora, но когда запускаю скрипт ltsp-build-server, выводит следующую ошибку &quot; fc13 is...

Wifi в fedora
Как то неправильно работаент wifi. Ось - Федора. Стоит на ноуте. Также на ноуте стоит винь. Также есть домашний комп с винем ХР с выходом в...

WiFi on Fedora 15
Доброе время суток. Поставил себе федору 15 на ноутбук с Broadcom-овскис WiFi адаптером. Адаптер работает но я не могу подключится к...

Установка Fedora
Уже со второго образа создаю загрузочную флешку, запускаю на установку и все заканчивается командной строкой drucut:/#. Что надо указывать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru