Der UDP Stack fuer Mikrocontroller (udp.c)


Funktionen

void udp (unsigned int packet_lenght, unsigned char *ethernetbuffer)
unsigned int UDP_RegisterSocket (unsigned long IP, unsigned int DestinationPort, unsigned int Bufferlenght, unsigned char *UDP_Recivebuffer)
 Reistriert ein Socket in den die Daten fuer ein Verbindung gehalten werden um die ausgehenden und einghenden UDP-Packet zuzuordnen.
unsigned int UDP_ListenOnPort (unsigned int Port, unsigned int Bufferlenght, unsigned char *UDP_Recivebuffer)
 Reistriert ein Socket in den die Daten fuer ein Verbindung gehalten werden um die ausgehenden und einghenden UDP-Packet zuzuordnen.
unsigned int UDP_SendPacket (unsigned int SOCKET, unsigned int Datalenght, unsigned char *UDP_Databuffer)
 Sendet ein UDP-Packet an einen Host.
unsigned int UDP_GetSocketState (unsigned int SOCKET)
 Gibt den Socketstatus aus.
unsigned int UDP_GetByteInBuffer (unsigned int SOCKET)
 Gibt die Anzahl der Byte aus die sich im Puffer befinden. Diese Abfrage macht nur sinn in Verbindung mit UDP_GetSocketState nachdem ein UDP-Packet empfangen worden ist und der Status fuer das auf SOCKET_BUSY steht. Danach werden bis zur Freigabe durch UDP_FreeBuffer keine Daten auf den Socket mehr angenommen.
void UDP_FreeBuffer (unsigned int SOCKET)
 Gibt den UDP-Puffer wieder zum empfang frei. Danach werden wieder UDP-Daten angenommen und in den Puffer kopiert.
unsigned int UDP_CloseSocket (unsigned int SOCKET)
 Gibt das Socket wieder freu und beendet die Verbindung. Alle UDP-Packet die dann von diesen Socket empfangen werden, werden verworfen.
unsigned int UDP_GetSocket (unsigned char *ethernetbuffer)
unsigned int MakeUDPheader (unsigned int SOCKET, unsigned int Datalenght, unsigned char *ethernetbuffer)
unsigned int UDP_Getfreesocket ()

Variablen

UDP_SOCKET UDP_sockettable [MAX_UDP_CONNECTIONS]
UDP_SOCKETUDP_socket

Ausführliche Beschreibung

 #include "arp.h" 
 #include "ethernet.h" 
 #include "ip.h" 
 #include "udp.h" 
Uebersicht
Der UDP-Stack für Mikrocontroller. Behandelt komplett den UDP-Stack mit Verbindungsaufbau und Abbau.

Dokumentation der Funktionen

void udp unsigned int  packet_lenght,
unsigned char *  ethernetbuffer
 

Hier findet die Bearbeitung des Packetes statt welches ein UDP-Packet enthaelt. Es wir versucht die Verbindung zuzuordnen, wenn dies nicht moeglich ist wird hier abgebrochen. Danach wird der Inhalt dem Socket zugeordnet und Daten in den Puffer des Benutzer kopiert.

Warnung:
Zu lange UDP-Packete werden abgeschnitten.
Parameter:
packet_lenght Gibt die Packetgroesse in Byte an die das Packet lang ist.
ethernetbuffer Zeiger auf das Packet.
Rückgabe:
NONE

unsigned int UDP_CloseSocket unsigned int  SOCKET  ) 
 

Gibt das Socket wieder freu und beendet die Verbindung. Alle UDP-Packet die dann von diesen Socket empfangen werden, werden verworfen.

Parameter:
SOCKET Die Socketnummer die geschlossen werden soll.
Rückgabe:
Es wird beim erfolgreichen schliessen der Socket 0 zurueck gegeben, sonst 0xffff.

void UDP_FreeBuffer unsigned int  SOCKET  ) 
 

Gibt den UDP-Puffer wieder zum empfang frei. Danach werden wieder UDP-Daten angenommen und in den Puffer kopiert.

Parameter:
SOCKET Die Socketnummer die freigegeben werden soll.
Rückgabe:
NONE

unsigned int UDP_GetByteInBuffer unsigned int  SOCKET  ) 
 

Gibt die Anzahl der Byte aus die sich im Puffer befinden. Diese Abfrage macht nur sinn in Verbindung mit UDP_GetSocketState nachdem ein UDP-Packet empfangen worden ist und der Status fuer das auf SOCKET_BUSY steht. Danach werden bis zur Freigabe durch UDP_FreeBuffer keine Daten auf den Socket mehr angenommen.

Parameter:
SOCKET Die Socketnummer vom abzufragen Socket.
Rückgabe:
Anzahl der Byte im Puffer.
Siehe auch:
UDP_GetSocketState, UDP_FreeBuffer

unsigned int UDP_GetSocketState unsigned int  SOCKET  ) 
 

Gibt den Socketstatus aus.

Parameter:
SOCKET Die Socketnummer vom abzufragen Socket.
Rückgabe:
Den Socketstatus.

unsigned int UDP_ListenOnPort unsigned int  Port,
unsigned int  Bufferlenght,
unsigned char *  UDP_Recivebuffer
 

Reistriert ein Socket in den die Daten fuer ein Verbindung gehalten werden um die ausgehenden und einghenden UDP-Packet zuzuordnen.

Parameter:
Port Der Port auf den gelauscht werden soll.
Bufferlenght Groesse des Datenpuffer der vom Benutzer bereitgestellt wird. Hier werden die eingegenden UDP-Daten kopiert. Dieser Puffer sollte entsprechend der Verwendung dimensioniert sein.
UDP_Recivebuffer Zieger auf den Puffer der vom Benutzer bereitgestellt wird.
Rückgabe:
Beim erfolgreichen anlegen eines ListenSocket wird die Socketnummer zurueck gegeben. Im Fehlerfall 0xffff.

unsigned int UDP_RegisterSocket unsigned long  IP,
unsigned int  DestinationPort,
unsigned int  Bufferlenght,
unsigned char *  UDP_Recivebuffer
 

Reistriert ein Socket in den die Daten fuer ein Verbindung gehalten werden um die ausgehenden und einghenden UDP-Packet zuzuordnen.

Parameter:
IP Die IP-Adresse des Zielhost.
DestinationPort Der Zielpot des Zielhost mit den verbunden werden soll. Der Sourcport wird automatisch eingestellt. Zu beachten ist das bei einer Verbindn zu Port 67 der Sourceport auf 68 eingestellt wird.
Bufferlenght Groesse des Datenpuffer der vom Benutzer bereitgestellt wird. Hier werden die eingegenden UDP-Daten kopiert. Dieser Puffer sollte entsprechend der Verwendung dimensioniert sein.
UDP_Recivebuffer Zieger auf den Puffer der vom Benutzer bereitgestellt wird.
Rückgabe:
Beim erfolgreichen anlegen eines Socket wird die Socketnummer zurueck gegeben. Im Fehlerfall 0xffff.

unsigned int UDP_SendPacket unsigned int  SOCKET,
unsigned int  Datalenght,
unsigned char *  UDP_Databuffer
 

Sendet ein UDP-Packet an einen Host.

Parameter:
SOCKET Die Socketnummer ueber die das Packet gesendet wird. param Datalenght Gibt die Datenlaenge der Daten in Byte an die gesendet werden sollen.
UDP_Databuffer Zeifer auf den Datenpuffer der gesendet werden soll.
Rückgabe:
Bei einem Fehler beim versenden wird ungleich 0 zurueckgegeben, sonst 0.
Siehe auch:
UDP_RegisterSocket , UDP_GetSocketState


Erzeugt am Sun Sep 10 14:06:28 2006 für MikroEthernetBoard von  doxygen 1.4.6