Модератор: Модераторы разделов
svas
Сообщения: 203
Сообщение
svas » 15.11.2007 02:55
Не работает такой код
Код: Выделить всё
#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
Сообщение
svas » 17.11.2007 17:32
Блин, что никто не знает в чём проблема? Даже не подозревает?
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Сообщение
serzh-z » 17.11.2007 17:56
У меня всё отлично запустилось и отправилось без ошибок... Полагаю, что дело в настройках сети и системы.
Мультикаст включен на используемом интерфейсе? См. вывод "ip link" или "ifconfig".
svas
Сообщения: 203
Сообщение
svas » 18.11.2007 00:18
вывод 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
Сообщение
svas » 18.11.2007 09:47
Всем спасибо, проблему решил
route add default eth0