Simple Network

Anwendungen, Tools, Userlibs und anderes nützliches.
Benutzeravatar
Dadido3
Beiträge: 119
Registriert: 24.02.2007 22:15
Kontaktdaten:

Simple Network

Beitrag 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
Zuletzt geändert von Dadido3 am 26.07.2009 21:00, insgesamt 6-mal geändert.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag 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...
Ronny S.
Beiträge: 73
Registriert: 24.11.2008 16:08

Beitrag von Ronny S. »

Irgendwie stimmt der Link nicht, es wird mir immer eine leere Zip Datei angezeigt.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

der link ist in ordnung...
was benutzt du zum ent-zippen?
Ronny S.
Beiträge: 73
Registriert: 24.11.2008 16:08

Beitrag 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 !?
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7028
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

nö habs problemlos runterladen können
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Ronny S.
Beiträge: 73
Registriert: 24.11.2008 16:08

Beitrag von Ronny S. »

Dann Sorry für die Anmerkung :oops:
Es liegt dann wohl an mir, trotzdem merkwürdig.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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.
Benutzeravatar
Dadido3
Beiträge: 119
Registriert: 24.02.2007 22:15
Kontaktdaten:

Beitrag 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.
Benutzeravatar
Dadido3
Beiträge: 119
Registriert: 24.02.2007 22:15
Kontaktdaten:

Beitrag 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.
Antworten