Проблемы с сокетами.

Модератор: Модераторы разделов

svas
Сообщения: 203

Проблемы с сокетами.

Сообщение svas »

Пытаюсь создать рав сокет. вылазит ошибка 93 (Protocal not supported). И из под обычного пользователя и из под рута
Сокет создаю так: socket_id = socket(AF_INET, SOCK_RAW, 0);
Может в ядре что-то не хватает? В xconfig по поиску raw вылазит небольшой список, там всё включено. Может какой-нить модуль подключить надо? Подскажите
Спасибо сказали:
spielmann
Сообщения: 105
ОС: Linux

Re: Проблемы с сокетами.

Сообщение spielmann »

socket(PF_PACKET, SOCK_RAW, proto)

man 7 packet
Спасибо сказали:
svas
Сообщения: 203

Re: Проблемы с сокетами.

Сообщение svas »

Спасибо почитаю
Спасибо сказали:
svas
Сообщения: 203

Re: Проблемы с сокетами.

Сообщение svas »

Возник ещё вопрос по сокетам
Не работает такой код

Код: Выделить всё

#include <netinet/in.h>
#include <netdb.h>
#include <string.h>
#include <errno.h>

#define HOST "234.0.0.1"

int main()
{
    int sock;
    struct sockaddr_in hostname;
    struct hostent *hostinfo;

    sock = socket(AF_INET, SOCK_DGRAM, 0x11);
    if (sock == -1)
    {
        printf("socket error\n");
        return -1;
    }

    memset(&hostname, 0, sizeof(hostname));
    hostname.sin_family = AF_INET;

    hostinfo = gethostbyname(HOST);
    if (hostinfo == NULL)
    {
        printf("gethostbyname error\n");
        return -1;
    }
    memcpy(&(hostname.sin_addr), hostinfo->h_addr, hostinfo->h_length);
    hostname.sin_port = htons(50138);
    socklen_t tolen = sizeof(hostname);
    char buffer[] = "qweqweqwe";
    if (sendto(sock, buffer, 9, 0, (struct sockaddr *)(&hostname), tolen) == -1)
    {
        printf("Error sendto\nerrno = %d",errno);
        return -1;
    }
    printf("OK\n");
}

errno устанавливается в 101 - "Network is unreachble"
помогите, а то уже все маны перерыл, не могу найти ничего
Спасибо сказали: