next up previous contents index
Next: String Routinen - mystring.h Up: Die Funktionenbibliothek, libmc Previous: TCP Sockets - tcp_sock.h

Multicast Sockets - mc_sock.h

 

Diese Routinen vereinfachen die Arbeit mit den für die Multicastkommunikation erforderlichen Sockets . Die Funktionen _to()  und _from()  haben als ersten Parameter einen Zeiger auf eine mc_sock Struktur. Diese Struktur wird von den Funktionen _send_socket()  und _read_socket()  initalisiert.

get_send_socket(u_short port,char *gruppe,u_short ttl)
  Diese Funktion öffnet einen Socket , der anschließend zum Versand von Paketen an die angegebene Multicastadresse gruppe und UDP-Port  port genutzt werden kann. Die Pakete erhalten beim Versand eine TTL  von ttl. Beispiel:
   struct mc_sock *send_sock;
   send_sock=get_send_socket(5432,"mcntp-directory.mcast.net",64);
get_read_socket(u_short port,char *gruppe)
  Diese Funktion öffnet einen Socket , der anschließend zum Empfang von Paketen der angegebenen Multicastgruppe gruppe auf dem angegebenen UDP-Port  port genutzt werden kann. Beispiel:
   struct mc_sock *read_sock;
   read_send_sock=get_read_socket(5432,"mcntp-directory.mcast.net");
send_to(struct mc_sock *to,char *buf,int len)
  Versendet den Inhalt eines Puffers buf mit der Länge len als ein Paket über den angegebenen Socket  to, der zuvor mit _send_socket()  initialisiert worden sein muß. Beispiel:
   /* send_sock von oben */
   res=send_to(send_sock,"Hello World",11);
   if(res!=11)  {  /* Fehler */  }
recv_from(struct mc_sock *from,char **buf, int len,int mode)
  Liest ein Paket von dem angegebenen Socket  from in den Puffer *buf ein. Es werden höchstens len Bytes gelesen. Wenn mode auf Null gesetzt ist, wartet _from()  bis Daten zum Lesen vorhanden sind. Ist mode auf Eins gesetzt, so kehrt _from()  sofort zurück, selbst wenn keine Daten vom Socket  gelesen werden konnten. Beispiel:
   /* read_sock von oben */
   char buf[200];

   res=read_from(read_sock,&buf,200,0);
   printf("Es wurde folgender Text erhalten: %s\n",buf);
multicast_dont_loop(struct mc_sock *mcs)
  Normalerweise erhalten Multicastempfänger, die auf dem gleichen Host sind, wie der Sender auch die Daten vom Sender (vgl. 2.2.2). Mit dieser Funktion kann dieses Verhalten unterbunden werden.

next up previous contents index
Next: String Routinen - mystring.h Up: Die Funktionenbibliothek, libmc Previous: TCP Sockets - tcp_sock.h
Heiko W.Rupp
12/1/1997