Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

1

02.07.2014, 01:10

C#,C++ Netzwerk, wie?

Ich plane derzeit ein Programm, vielmehr 2. Ein Programm soll ein User ausführen können am PC und Handy und das andere soll auf einem Server laufen. Der User gibt Daten ein oder kann diese abrufen, die Werte stehen auf dem Server in einer Datenbank. Allerdings soll sich das Programm auf dem PC nicht direkt mit der Datenbank, sondern mit dem Programm, welches auf dem Server läuft verbinden und dieses schickt/bekommt die Daten von/für die Datenbank und liest/schreibt sie aus/rein.

Das Programm auf dem PC würde ich gerne in C# schreiben und das Programm auf dem (Ubuntu) Server in C++.
Aber ich habe bisher nie etwas mit Netzwerk programmiert.
Dazu 2 Fragen:
1) Kann ich das ganze irgendwie einfach mit fertigen Libs machen?

2) Das ist ja eher das minimalste der Netzwerkprogrammierung, angenommen ich will es selber machen, wo sollte ich anfangen mich in das Thema einzulesen? Generelle Kentnisse von Protokollen usw sind bekannt, nur nicht im Zusammenhang mit Programmierung.



Ich hoffe ihr versteht meine wirre Erklärung :D

Vielen Dank im voraus für eure Hilfe :)

birdfreeyahoo

Alter Hase

Beiträge: 756

Wohnort: Schorndorf

Beruf: Junior Software Engineer

  • Private Nachricht senden

2

02.07.2014, 01:35

Zwischen C++ und C# dürften erstmal keine Kompatibilitätsprobleme auftreten. Paket ist Paket, du musst nur wissen wie du die Daten zu lesen hast.
Für C++ hab ich immer RakNet genommen.
Für C# ist Lidgren Network gut, oder du nimmst die native Implementierung vom .NET Framework.

H5::

Treue Seele

Beiträge: 368

Wohnort: Kiel

  • Private Nachricht senden

3

02.07.2014, 04:00

ZeroMQ finde ich persönlich auch sehr gut, benötigt aber sinnvollerweise noch eine Schicht zusätzlich. Z.B. msgpack oder so.


Damit bst du aber dann gut von der Implementierung ob in C, C++, C# ... Java usw. Unabhängig.
:love: := Go;

Toemsel

Treue Seele

Beiträge: 310

Wohnort: OÖ

Beruf: Student und Programmierer

  • Private Nachricht senden

4

02.07.2014, 09:11

Wie birdfreeyahoo bereits sagte. Du bist immer unabhängig, solange du keine Objekte serialisiert.
Wenn der Bitstrom bekannt ist, kannst du in C#, C++ oder was auch immer das ganze wieder richtig zusammensetzen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

02.07.2014, 09:12

Für Serialisierung kann ich übrigens Protobuf sehr empfehlen. Damit ist die Schnittstelle für alle Seiten wenigstens klar definiert. Die C# Binding dafür sind super easy per Attributes, sicher geht da aber auch die Generierung über proto-File-Definitionen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

6

02.07.2014, 10:41

Danke erstmal an alle für die schnellen Rückmeldungen :)

Ich habe grade angefangen mich in Protobuf einzulesen, das scheint ja echt super zu sein. Verstehe ich es richtig, dass Protobuf nur definiert welche "Werte" über das Netzwerk verschickt werden und eine gute Möglichkeit bietet diese auszulesen, aber verschickt werden müssen diese mithilfe einer anderen Lib?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

7

02.07.2014, 10:58

Ja. Protobuf definiert nur die Struktur der Daten und generiert durch den Protobuf-Compiler hübsche Klassen dazu. Verschicken musst Du sie aber mit etwas anderem. Dafür wurden ja schon ein paar schicke Libs genannt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

8

05.07.2014, 16:53

Habe es endlich geschafft Protobuf zu compilen, aber wie genau binde ich das jetzt in ein Projekt ein?
Habe die Dateien im include Ordner in den Visual Studio include Ordner gepackt.
Will ich jetzt das Standardprojekt compilen, gibt es viele linkerFehler, ich denke mal das liegt daran, dass die 3.lib an der falschen Stelle sind, aber wo sollen die hin?

EDIT:
Wie sieht es mit den Projekteinstellungen aus, müssen die auch verändert werden um Protobuf einzubinden?

Tobiking

1x Rätselkönig

  • Private Nachricht senden

9

05.07.2014, 17:14

Du musst natürlich in dem Projekt einstellen welche Lib verwendet werden soll und wo diese zu finden ist. Dort den Include Ordner zusätzlich anzugeben ist übrigens auch die deutlich bessere Lösung als die Includes in den standard Ordner zu kopieren. Spätestens wenn du zwei Projekte mit unterschiedlichen Versionen von Protobuf hast, wirst du da ein Problem kriegen.

ERROR

Alter Hase

  • »ERROR« ist der Autor dieses Themas

Beiträge: 417

Wohnort: Paderborn

Beruf: Informatik Student

  • Private Nachricht senden

10

05.07.2014, 19:54

Konnte einen Teil der Fehler beheben, bekomme aber immernoch 6 Fehler. Ich folge demoffiziellem Tutorial. Konfiguration wie in den Bildern zu sehen. Was kann ich tunt bzw mache ich falsch?
»ERROR« hat folgende Bilder angehängt:
  • error.PNG
  • config1.PNG
  • config2.PNG

Werbeanzeige