Gibt es irgendwelche Artikel oder Beratung auf einem C ++ Chat-Server mit einem C # Client einrichten?

StackOverflow https://stackoverflow.com/questions/807846

  •  03-07-2019
  •  | 
  •  

Frage

Meine aktuelle Klasse plant ein grundlegendes Netzwerkspiel auf der Schaffung, aber wir haben beschlossen, auf der Aufgabe, einen C ++ Server mit einem C # Client zu nehmen. Ich verstehe dies wahrscheinlich eine schwierige Aufgabe ist, aber ich habe mich gefragt, ob es eine Beratung ist auf die dies möglich gemacht.

Es tut mir leid ich nicht mehr Informationen haben als diese. Wir sind gerade erst begonnen und wollen nur sicherstellen, dass dies innerhalb der Zeitspanne möglich ist, die wir haben.

War es hilfreich?

Lösung

Das funktioniert gut. C # und C ++ beide Unterstützung TCP- und UDP-Netzwerkverbindungen, in vielen Geschmacksrichtungen. Entweder würde für den Client oder Server funktionieren.

Die wichtigsten Punkte, die Sie benötigen, um zu sehen sind, zu entscheiden, wie Sie Ihre Daten zu übertragen, und dafür zu sorgen, dass alle Pakete, die Sie durch den Draht passieren serialisiert / deserialisiert die gleiche Weise.

Dies wäre einfacher, wenn Sie auf beiden Seiten die gleiche Sprache (oder zumindest Bibliotheken) verwenden sind, das heißt: wenn Sie verwenden C ++ / CLI für den Server, und mit einigen der gleichen verwalteten .NET-Tool steckten für die Arbeit mit Datenübertragung.

Andere Tipps

Es ist wirklich kein großes Problem - solange man mit einem guten Protokoll kommen. Die Bits auf dem Draht egal, welche Sprache verwendet wurde, um das Programm zu schreiben, die sie interpretiert.

Mit dem Protokoll Ich meine Sie müssen ein klares Verständnis davon, wer sollte was tun, wenn, was ich sagen soll, und was zu erwarten ist zurück.

Zum Beispiel kann ein Echo-Server und seine Client könnten erwarten, dass

  • der Kunde spricht zuerst
  • gibt es eine gut verstanden Kennung das Ende der Client-Eingabe
  • markieren
  • wird der Client für den Server warten, bevor er sprach erneut zu reagieren
  • gibt es eine gut verstanden Kennung das Ende des Servers Ausgabe zu markieren.

Und so weiter. Ein anderer Client, den die Nachrichtenlänge, bevor die Nachricht nicht mit dem ursprünglichen Server funktionieren würde, anstatt mit einem Ende des Eingangsbezeichner gesendet, weil die Protokoll Inkompatibilitäten.

Protokolle können flexibel sein, aber Sie haben sich für diese Flexibilität in dem Protokoll zu berücksichtigen.

Wie jeder sagte, ist dies kein Problem überhaupt, wenn Ihr Chat-Protokoll ist gut gestaltet. Nur wenn Sie Hacks wie mit BinaryFormatter wurden unter Verwendung direkt auf CLR-Objekte auf den Draht serialisiert würden Sie ein Problem haben ...

Ich würde empfehlen, die Sie verwenden bestehende Protokolle (zum Beispiel IRC) und / oder Bibliotheken in dem Maße, sind Sie erlaubt.

Wenn es alles in einer Windows-Domäne ausgeführt wird, könnten Sie DCOM betrachten. Ansonsten habe ich für Web-Services (SOAP-Toolkit für C ++) gehen würde, oder vielleicht REST.

Für ein Chat-Programm, versuchen Sie ein Chat-Protokoll.

Überprüfen Sie XMPP und sehen, ob Sie es oder eine abgespeckte Version verwenden können. Ausgehend von dem, was andere haben heraus ist nie eine schlechte Idee. Am allerwenigsten können Sie sehen, was Sie nicht darüber gefällt. :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top