Mono-Kompatibel Netzwerk/Socket-Bibliothek
Gibt es Mono (C#) - kompatibel Netzwerk /socket-Bibliotheken gibt?
Vorzugsweise etwas, das ist:
- Multi-Threaded
- Event Driven
- In der Lage, mehrere verbindungen
- Handhabt client-und server-Stücke
- Läuft auf Mono und MS .NET Laufzeiten
- Sehr einfach
- Frei (Und nutzbar bei kommerzieller software)
Es wäre auch wirklich toll, wenn es war:
- .NET Compact Framework (Windows Mobile) kompatibel
- MonoTouch (iPhone) kompatibel
Edit:
Klären mehr, was ich mit meiner "eine Ebene über TCP/IP" - Kommentar war, dass ich etwas will, dass ist im Grunde eine Selbstversorger-server /client. Ich will nicht zu haben, um mit dem schreiben der threading-code, Behandlung jede Verbindung, etc. Zum Beispiel, ich würde lieben, damit der code wie folgt Aussehen:
Server s = new Server(8080);
s.NewConnection += new ConnectionEventHandler(NewConnection);
s.DataRecieved += new DataEventHandler(NewData);
s.Start();
void NewConnection(object sender, EventArgs e)
{
s.Send((Connection)sender, "Hello World!"); //(Connection)sender is the connection instance so the server knows which to send the response to
}
void NewData(object sender, EventArgs e)
{
s.Send((Connection)sender, e.Data); //Echo back
}
Nicht der sauberste code, aber ich denke, es gibt die grundlegende Idee.
- Meinst du IP-sockets? Ich wäre überrascht, wenn irgendjemand die Mühe gemacht hätte zu schreiben, eine vollständige Netzwerk-stack gegeben, es ist alles da in System.Net & Systems.Net.Sockets. Ich denke, es könnte einige wrapper-Bibliotheken hinzufügen, um eine spezifische Erweiterung, ich kann nicht denken Sie an ein Beispiel wenn.
- Ja ich meine IP-Sockets. Und sicher, ich kann die standard-socket-Klassen, aber jedes mal, wenn ich tun, es ist die gleiche Sache über und über. Ich habe mit all den multi-threading - / async-Sachen wieder, die ich nur irgendwie dachte, dass an dieser Stelle, das war im Grunde schon fertig.... Ich bin auf der Suche nach etwas, das 1 level über TcpClient und TcpListener.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Etwas wie dieser jetzt existiert, Kasse networkComms.net. Tut all die Dinge, die Sie benötigen, und ist auch 100% kompatibel mit mono.
Haftungsausschluss: ich bin einer der Entwickler für die kommerzielle Bibliothek.
Nein, es ist nichts, out of the box das tut, was Sie wollen.
TcpClient/TcpListenr bereits eine Ebene über Socket-Klasse. Wenn Sie wirklich wollen, etwas, das ist noch einfacher, es ist eine sehr einfache Aufgabe zu wickeln TcpListener() und stellen Sie setzen die event-handler-Eintrag Punkte, die Sie wollen.
Sollten Sie sich RemotingLite. Ich benutze es mit meiner Mono-Anwendungen. Es wurde entwickelt, um Hilfe bei der networking-Aspekt der Distributed Computing Bibliothek MPAPI. MPAPI hatte ein Ziel, zu 100% kompatibel mit Mono.
Ich bin nicht klar, was genau erwarten Sie von einer Klasse, die "eine Ebene über TcpClient und TcpListener"?
TcpClient/TcpListener sind die grundlegenden Bausteine, die Sie für die Entwicklung verwenden sollen. Ich bin nicht sicher, ob Sie unterstützt werden, in Mono, aber wenn Sie sind, dann es sollte alles, was Sie brauchen.
.Net CompactFramework unterstützt auch diese, obwohl ich nicht sicher bin, Mono-Touch.