IP Multicast

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

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

IP Multicast

Сообщение svas »

Не работает такой код

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

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <string.h>
#include <stdio.h>

#define MAXBUF 256
#define PORT 5000
#define GROUP "224.0.1.1"

int main(void) {
  int s;
  struct sockaddr_in srv;
  char buf[MAXBUF];

  bzero(&srv, sizeof(srv));
  srv.sin_family = AF_INET;
  srv.sin_port = htons(PORT);
  if (inet_aton(GROUP, &srv.sin_addr) < 0) {
   perror("inet_aton");
   return 1;
  }
  if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
   perror("socket");
   return 1;
  }

  while (fgets(buf, MAXBUF, stdin)) {
    if (sendto(s, buf, strlen(buf), 0,
              (struct sockaddr *)&srv, sizeof(srv)) < 0) {
      perror("sendto");
    } else {
      fprintf(stdout, "sendto:  %s %s\n", GROUP, buf);
    }
  }
}


Вначале думал что надо войти в группу, но потом прочитал что для отправки сообщения не нужно входить в multicast-группу
Программа выдаёт след.:
sendto: Network is unreachable
Спасибо сказали:
svas
Сообщения: 203

Re: IP Multicast

Сообщение svas »

Блин, что никто не знает в чём проблема? Даже не подозревает?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: IP Multicast

Сообщение serzh-z »

У меня всё отлично запустилось и отправилось без ошибок... Полагаю, что дело в настройках сети и системы.

Мультикаст включен на используемом интерфейсе? См. вывод "ip link" или "ifconfig".
Спасибо сказали:
svas
Сообщения: 203

Re: IP Multicast

Сообщение svas »

вывод netstat -i -e

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

eth0      Link encap:Ethernet  HWaddr 00:1A:92:09:90:B7
          inet addr:192.168.0.162  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:391 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:32332 (31.5 KiB)  TX bytes:2267 (2.2 KiB)
          Interrupt:17

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:58 errors:0 dropped:0 overruns:0 frame:0
          TX packets:58 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4020 (3.9 KiB)  TX bytes:4020 (3.9 KiB)


/etc/network/interfaces

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

auto lo
iface lo inet loopback

allow-hotplug eth0

auto eth0

iface eth0 inet static
        address 192.168.0.162
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255


Помогите пожалуйста, очень надо
Спасибо сказали:
svas
Сообщения: 203

Re: IP Multicast

Сообщение svas »

Всем спасибо, проблему решил
route add default eth0
Спасибо сказали: