отправка структуры через сокеты UNIX UDP в C - PullRequest
0 голосов
/ 01 февраля 2011

Я работаю над клиентской / серверной ftp-программой для класса, использующего сокеты UNIX на C. Я должен отправить свои данные в этот процесс, который мой профессор использует для моделирования сетевого трафика (так называемый «тролль»). Требуется специальный заголовок. Поэтому я собирался попытаться создать структуру с заголовком, а затем прикрепить к ней свои данные ... но мой компилятор продолжает выдавать мне эту ошибку ...

"невозможно преобразовать в тип указателя" (ссылаясь на последнюю строку кода)

Не могу понять, что я делаю не так ...

/* make troll header */
    struct sockaddr_in dest, troll;
    struct {
        struct sockaddr_in header;
        char body[MAXDATASIZE];
    } message;
    message.header.sin_family = htons(AF_INET);
    message.header.sin_port = htons(SERVER_PORT);
    bcopy((char *)&server_name.sin_addr, (char *)&message.header.sin_addr, sizeof(server_name.sin_addr));

    troll.sin_family = AF_INET;
    troll.sin_port = htons(TROLL_PORT);
    bcopy((char *)&name.sin_addr, (char *)&troll.sin_addr, sizeof(name.sin_addr));

    /* send mini_buffer to troll */
    memcpy(message.body, mini_buffer, MAXDATASIZE);

    int result = sendto(troll_sock, (char *) &message, sizeof(message), 0, (struct sockaddr *) troll, sizeof(troll));

1 Ответ

4 голосов
/ 01 февраля 2011

Вам нужно передать адрес тролля, а не сам объект. Попробуйте: ... (struct sockaddr *) (& troll) ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...