Ich suche eine High-Level-Bibliothek für Socket-Programmierung (Java oder Python)

8

Kurz gesagt, ich erstelle ein Flash-basiertes Multiplayer-Spiel und fange jetzt an, an dem serverseitigen Code zu arbeiten. Nun, ich bin der einzige Entwickler des Projekts, also suche ich eine High-Level-Socket-Bibliothek, die gut mit Spielen funktioniert, um meine Entwicklungszeit zu beschleunigen.

Ich habe versucht, das Twisted Framework (für Python) zu verwenden, aber ich habe einige persönliche Probleme damit, also suche ich nach einer anderen Lösung.

Ich bin offen für Java oder eine Python-basierte Bibliothek. Die Hauptsache ist, dass die Bibliothek stabil genug für Multiplayer-Spiele ist und die Bibliothek "high-level" (abstrakt) sein muss, da ich neu in der Socket-Programmierung für Spiele bin.

Ich möchte auch darauf hinweisen, dass ich den rohen binären Socket für mein Flash-Spiel (Actionscript 3.0) verwenden werde, da ich davon ausgehe, dass es schneller ist als der herkömmliche Flash XML-Socket.

    
CodeJustin.com 13.11.2009, 09:55
quelle

4 Antworten

7

Eine Option für Python ist das Concurrence -Framework. Ich habe es in letzter Zeit in Verbindung mit Stackless Python verwendet, um eine Umgebung zu simulieren, in der potenziell tausende von Anfragen pro Sekunde möglich waren welches in weniger als 2 Sekunden verarbeitet werden musste. Die API ist sehr einfach und gut dokumentiert.

Ich kam der Implementierung in Java mit Netty , einem JBoss-Projekt, sehr nahe.

    
Rod Hyde 13.11.2009, 11:04
quelle
0

Siehe "Eine Kurzanleitung zu ActionScript 3 und Flash-Programmierung" . Es enthält ein detailliertes Beispiel für einen ActionScript-Clientcode, der Sockets für die Kommunikation mit einem Python-Server verwendet (einschließlich Code). Nicht, was jemand high-level nennen würde, es benutzt das grundlegende Python-Socket-Modul für die Kommunikation.

(Hinweis: Das Beispiel des Python-Servers ist not pythonic . Nachdem Sie die allgemeine Idee der Verwendung von Sockets in Python erhalten haben, schreiben Sie etwas einfacheres und NO from socket import * )

    
gimel 13.11.2009 10:18
quelle
0

High-Level auf der einen Seite und rohe Binär-Sockets auf der anderen Seite funktionieren nicht. Entschuldigung, aber Sie müssen auch auf der Server-Seite auf Low-Level gehen.

EDIT: als Antwort auf den OP-Kommentar. Ich bin mir keiner "High-Level" -Schnittstelle der Art bewusst, über die Sie für Java sprechen. Und ehrlich gesagt finde ich das nicht sehr sinnvoll. Wenn Sie Bytes über Socket-Streams sprechen wollen, müssen Sie die standardmäßigen JDK Socket / ServerSocket APIs verstehen. z.B. Timeouts, Keep-Alive, etc.

    
Stephen C 13.11.2009 10:06
quelle
0

Für Java gibt es Apache mina und Grizzly Frameworks, die wirklich die Arbeit mit Sockets vereinfachen

    
Nikolay Ivanov 13.11.2009 11:14
quelle

Tags und Links