Seite 1 von 4

Simple Network

Verfasst: 23.01.2009 22:57
von Dadido3
Bild

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:
Beispiel:

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
Und dann ein Beispiel zum Empfangen:

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
Changelog:

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)
Hier das Archiv mit den Dateien. Es ist ein einfaches Include.
Es lieg auch ein Beispiel in Form eines kleinen Chat-Programms bei:

Download

Viel Spass damit

Verfasst: 23.01.2009 23:04
von X0r
Klingt interessant!
Wie stabil ist das ganze? Kann mich noch gut an KNet erinnern, da war nicht mehr als ein einfacher Chat möglich...

Verfasst: 23.01.2009 23:40
von Ronny S.
Irgendwie stimmt der Link nicht, es wird mir immer eine leere Zip Datei angezeigt.

Verfasst: 23.01.2009 23:43
von Kaeru Gaman
der link ist in ordnung...
was benutzt du zum ent-zippen?

Verfasst: 23.01.2009 23:56
von Ronny S.
Ich benutze WinRar und WinZip zum entpacken.
Habe aber eben gemerkt, das der Fehler nur im IE auftritt.
Beim Firefox gibt es keine Probleme, eventuell liegt es wohl an mir !?

Verfasst: 23.01.2009 23:58
von STARGÅTE
nö habs problemlos runterladen können

Verfasst: 24.01.2009 00:00
von Ronny S.
Dann Sorry für die Anmerkung :oops:
Es liegt dann wohl an mir, trotzdem merkwürdig.

Verfasst: 24.01.2009 00:14
von Kaeru Gaman
sowas hat ich früher schon erlebt, wenn packer und entpacker verschiedene Zip-Protokoll-Versionen benutzen.

z.B. hat vor nem Jahr oder so WinZip die mit einem veralteten WinRAR gezipten archive nicht erkannt.

Verfasst: 24.01.2009 01:46
von Dadido3
Zur Stabilität kann ich soviel sagen:

Während der Entwicklungsphase und auch danach hatte ich keine abstürze oder andere Fehler, die ich mir nicht erklären konnte.
Natürlich hab ich die Lib auch getestet bevor ich sie hochgeladen hab,
aber trotzdem wär es nett, wenn ihr sie auf Herz und Nieren testet ;)

Wenn ihr also einen Fehler findet, dann sagt bescheid.

Verfasst: 25.01.2009 17:52
von Dadido3
Kleines update:

Ich hab jetzt mal eine Dokumentation in Form einer PDF-Datei hinzugefügt.
Und nebenbei gab es auch kleine verbesserungen an der Bibliothek.