Thread View: pl.comp.os.linux.programowanie
5 messages
5 total messages
Started by laser
Mon, 02 May 2011 07:28
UDP, INADDR_ANY - czemu nie dziala?
Author: laser
Date: Mon, 02 May 2011 07:28
Date: Mon, 02 May 2011 07:28
26 lines
1941 bytes
1941 bytes
Witam, Taki drobny problem: z komputera A (GPRS, Internet) wysylam do komputera B co 5 sek pakiet UDP. Komputer B jest na stale wpiety do Internetu przez DSL i ma staly nr IP. Wszystko dziala, pakiety UDP dochodza. Od czasu do czasu na komputerze B jest zestawiane polaczenie GPRS do Internetu. Domyslny staje sie router z GPRS i pakiety przestaja dochodzic. W kodzie odbiorcy (B) UDP mam tak: servAddr.sin_family = AF_INET; servAddr.sin_addr.s_addr = htonl(INADDR_ANY); servAddr.sin_port = htons(port); rc = bind(sd, (struct sockaddr *) &servAddr, sizeof(servAddr)); Wskazywaloby to na to, ze pakiety powinny byc odebrane z ktoregokolwiek interfejsu by nie przyszly. A kiedy jest na B jest sesja GPRS - nie przychodza. Kiedy GPRS sie konczy - zaczynaja przychodzic. Co ciekawsze - tcpdump pokazuje, ze docieraj. Tylko jakgdyby nie sa przekazywane do mojego programu. Czy moze ktos wie czemu? marcin -- ml http://www.archimedes.eu.org/
Re: UDP, INADDR_ANY - czemu nie dziala?
Author: bofh
Date: Mon, 02 May 2011 10:46
Date: Mon, 02 May 2011 10:46
29 lines
2060 bytes
2060 bytes
On 02.05.2011 09:28, laser@laser.lon wrote: > Witam, Taki drobny problem: z komputera A (GPRS, Internet) wysylam do > komputera B co 5 sek pakiet UDP. Komputer B jest na stale wpiety do > Internetu przez DSL i ma staly nr IP. Wszystko dziala, pakiety UDP dochodza. > > Od czasu do czasu na komputerze B jest zestawiane polaczenie GPRS do > Internetu. Domyslny staje sie router z GPRS i pakiety przestaja dochodzic. > W kodzie odbiorcy (B) UDP mam tak: > servAddr.sin_family = AF_INET; > servAddr.sin_addr.s_addr = htonl(INADDR_ANY); > servAddr.sin_port = htons(port); > > rc = bind(sd, (struct sockaddr *) &servAddr, sizeof(servAddr)); > > Wskazywaloby to na to, ze pakiety powinny byc odebrane z ktoregokolwiek > interfejsu by nie przyszly. A kiedy jest na B jest sesja GPRS - nie > przychodza. Kiedy GPRS sie konczy - zaczynaja przychodzic. > > Co ciekawsze - tcpdump pokazuje, ze docieraj. Tylko jakgdyby nie sa > przekazywane do mojego programu. Czy moze ktos wie czemu? > Spróbuj dać: echo "0" > /proc/sys/net/ip4/conf/all/rp_filter -- wer <",,)~~ http://szumofob.eu
Re: UDP, INADDR_ANY - czemu nie dziala?
Author: laser
Date: Tue, 03 May 2011 07:25
Date: Tue, 03 May 2011 07:25
13 lines
1365 bytes
1365 bytes
Dnia 02.05.2011 bofh@nano.pl <bofh@nano.pl> napisał/a: > > Spróbuj dać: > > echo "0" > /proc/sys/net/ip4/conf/all/rp_filter Niestety - nie pomoglo. Chodziło o to, ze system blokuje pakiety, ktore dochodza przez inny interfejs niz by mu sie to wydawalo? -- ml http://www.archimedes.eu.org/
Re: UDP, INADDR_ANY - czemu nie dziala?
Author: laser
Date: Tue, 03 May 2011 07:30
Date: Tue, 03 May 2011 07:30
24 lines
1861 bytes
1861 bytes
Dnia 03.05.2011 laser@laser.lon <laser@laser.lon> napisał/a: > Dnia 02.05.2011 bofh@nano.pl <bofh@nano.pl> napisał/a: >> >> Spróbuj dać: >> >> echo "0" > /proc/sys/net/ip4/conf/all/rp_filter > > Niestety - nie pomoglo. Chodziło o to, ze system blokuje pakiety, ktore > dochodza przez inny interfejs niz by mu sie to wydawalo? Ciekawe: kiedy przy dopisalem 'route add -net 91.94.0.0/16 eth0' to zadzialalo. Ta siec '91.94.*.*' to GPRS z orange. Komputer wysylajacy UDP dostal adres z tej sieci (nie wiem czy ta siec to akurat /16, ale poczatek sie zgadza). To dalej nie rozwiazuje problemu - chcialbym zeby wszystko dzialalo bez kombinacji, a powinno: UDP dochodzi (tcpdump pokazuje). Tylko czemu nie jest przekazywane do mojego programu? -- ml http://www.archimedes.eu.org/
Re: UDP, INADDR_ANY - czemu nie dziala?
Author: Mariusz Kruk
Date: Tue, 03 May 2011 16:55
Date: Tue, 03 May 2011 16:55
21 lines
1759 bytes
1759 bytes
epsilon$ while read LINE; do echo \>"$LINE"; done < "laser@laser.lon" >> Spróbuj dać: >> >> echo "0" > /proc/sys/net/ip4/conf/all/rp_filter >Niestety - nie pomoglo. Chodziło o to, ze system blokuje pakiety, ktore >dochodza przez inny interfejs niz by mu sie to wydawalo? Owszem. RP Filter odrzuca pakiety z adresem źródłowym "pochodzącym z innego interfejsu". Jakbyś miał włączone logowanie marsjan, miałbyś informację w logach kernela o odrzuceniu pakietów. Musisz wyłączyć rp_filter na tym interfejsie, na który przychodzą ci te dziwne pakiety. Niestety, wyłączenie na "all" nie zawsze działa (powiedziałbym wręcz, że raczej zwykle nie działa, ale nie chce mi się wgłębiać, więc będę ostrożny). -- \------------------------/ | Kruk@epsilon.eu.org | http://www.nieruchomosci.pl/mieszkanie,58342761 | http://epsilon.eu.org/ | /------------------------\
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads