Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
UDP-Broadcast ignoriert

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Netzwerk
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
tengelmen



Anmeldungsdatum: 10.06.2002
Beiträge: 2

BeitragVerfasst am: 10. Jun 2002 9:25   Titel: UDP-Broadcast ignoriert

Meine selbstgeschriebenen Socket-Anwendungen ignorieren grundsätzlich Broadcasts an die Broadcast-Adresse des Netzwerks.
Am Sender kanns nicht liegen, die Windows-Pendants erkennen die Pakete.
Irgendwelche Ideen?

Thx
Marcus
 
Benutzer-Profile anzeigen Private Nachricht senden

abto



Anmeldungsdatum: 30.03.2002
Beiträge: 23

BeitragVerfasst am: 11. Jun 2002 1:09   Titel: Re: UDP-Broadcast ignoriert

Zeig mal die Quellcode-Fragmente für die Socket verbindungen...
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

tengelmen



Anmeldungsdatum: 10.06.2002
Beiträge: 2

BeitragVerfasst am: 11. Jun 2002 7:04   Titel: Re: UDP-Broadcast ignoriert

Socket öffnen:

...
struct sockaddr_in in_addr;
sock=socket(AF_INET, type, 0);
if (sock<0){
printf("Error opening socket");
exit(-1);
}
in_addr.sin_family=AF_INET;
in_addr.sin_port= htons(port);
in_addr.sin_addr.s_addr=inet_addr(ipAddress);
memset(&(in_addr.sin_zero),'\0',Cool;
if ((result=bind(sock, &in_addr, sizeof(struct sockaddr)))<0){
printf("Error binding socket");
exit(-1);
}
...

- Datagram lesen

...
struct sockaddr_in source_addr;
source_addr.sin_family=AF_INET;
source_addr.sin_port=7200;
target= sizeof(struct sockaddr_in);
bufferLength=recvfrom(socket,buffer,65535,0, &source_addr, &target);
...
 
Benutzer-Profile anzeigen Private Nachricht senden

abto



Anmeldungsdatum: 30.03.2002
Beiträge: 23

BeitragVerfasst am: 11. Jun 2002 23:02   Titel: Re: UDP-Broadcast ignoriert

> Socket öffnen:
>
> ...
> struct sockaddr_in in_addr;
> sock=socket(AF_INET, type, 0);
ich geh mal davon aus in type steht SOCK_DGRAM

> if (sock<0){
> printf("Error opening socket");
> exit(-1);
> }
> in_addr.sin_family=AF_INET;
> in_addr.sin_port= htons(port);
ist port = 7200 ?

> in_addr.sin_addr.s_addr=inet_addr(ipAddress);
müsste meiner Ansicht heißen:
in_addr.sin_addr.s_addr=INADDR_ANY;
(liest dann auf allen der Maschine zugehörigen Adressen)

> memset(&(in_addr.sin_zero),'\0',Cool;
> if ((result=bind(sock, &in_addr, sizeof(struct sockaddr)))<0){
> printf("Error binding socket");
> exit(-1);
> }
> ...
>
> - Datagram lesen
>
> ...
> struct sockaddr_in source_addr;
> source_addr.sin_family=AF_INET;
> source_addr.sin_port=7200;
versuchs mit
source_addr.sin_port=htons(7200);

> target= sizeof(struct sockaddr_in);
> bufferLength=recvfrom(socket,buffer,65535,0, &source_addr, &target);
> ...

Gruß Oliver
 
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Netzwerk Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy