Simple Network
Verfasst: 23.01.2009 22:57

Hier hab ich für euch eine einfache aber mächtige Netzwerkbibliothek.
Das besondere an dieser ist, dass man sich nicht mehr um den Server und den Clienten kümmern muss.
Server- und Clientverbindungen werden Intern verwaltet,
und damit ist jeder Knotenpunkt einfach als Peer ansprechbar.
Aber trotzdem lässt sich bestimmen, ob ein Peer nur als Server oder Client funktioniert.
Es sind damit auch Netzwerke realisierbar, welche auf eine Zentrale stelle zugreifen.
Des Weiteren unterstützt die Bibliothek das UDP-Protokoll.
Und auch damit ist die vollständige übertragung der Daten gewährleistet.
Weitere Features sind:
- Vollständige Verwaltung der Peers: Ping, Timeouts, Jeder Peer hat eine eindeutige Nummer
- Große Pakete sind möglich (durch Arbeitsspeicher begrenzt)
- Paketen können Prioritäten zugeördnet werden
- Die Bibliothek läuft im Hintergrund als Thread, das Hauptprogramm wird dadurch also nicht
unterbrochen - Keine Dlls erforderlich, die Bibliothek wird Inkludiert
- Sehr einfaches schreiben und auslesen der Daten eines Pakets:
Code: Alles auswählen
SNet_New_Package() ;Neues Paket erstellen
SNet_Write_Quad(800000) ;Den Wert "800000" in den Paketspeicher schreiben
SNet_Write_String("Hallo") ;Den String "Hallo" in den Paketspeicher schreiben
SNet_Close_Package(123, 1, 1) ;Paket abschicken an den Peer 123 mit weiteren einstellungen
Code: Alles auswählen
Value.q = SNet_Read_Quad() ;Den Wert "800000" aus dem Paketspeicher lesen
String.s = SNet_Write_String() ;Den String "Hallo" aus dem Paketspeicher lesen
Code: Alles auswählen
- V 0.9:
- Erstes Release
- V 0.93:
- SNet_Init_ms und SNet_ms verbessert. SNet_Init_ms ist jetzt ohne Delay.
Wenn kein hochauflösender Zähler vorhanden, wird ElapsedMilliseconds() genutzt.
- InitNetwork() wird jetzt mit SNet_Init aufgerufen. Rückgabe wird abgefragt.
- SNet_Peer_Get_IP() hinzugefügt.
- Dokumentation erstellt
- V 0.94:
- Variablen sind nun alle deklariert. Jetzt funktioniert das Include auch mit "EnableExplicit".
- V 0.97:
- Bestimmte Variablen sind nun als Integer deklariert.
- Die Library ist nun Unicode kompatibel.
- Dokumentation korrigiert/verbessert. (Dank an AND51 für den Hinweis)
- V 0.98:
- Kleine Fehlerbehebung an "Declare.l SNet_Peer_Select(Identity.l)
Es lieg auch ein Beispiel in Form eines kleinen Chat-Programms bei:
Download
Viel Spass damit