Zum Inhalt springen

Netzwerkprogrammierung Tutorial in .NET benötigt


errox

Empfohlene Beiträge

Hallo Mitglieder,

ich möchte gerne meinen Entwicklerhorizont erweitern und einen Schritt in die Netzwerkprogrammierung wagen.

Meine Erfahrungen im Bereich Netzwerkprogrammierungen sind minimal. Ich weiss was ein Socket ist, ein Server, Client und den Unterschied eines TCP / UDP Protokolls.

Erfahrungen im bereich Programmierung hab ich viele. Ich selbst bin hauptberuflich Softwareentwickler mit dem schwerpunkt mobile Geräteentwicklung im bereich C# .NET. Nebenher habe ich sehr viele Erfahrungen in C++ und C++ .NET gemacht.

Mein Zielprojekt ist ein Datenaustausch zwischen einem mobilen Gerät zu einem anderen über einen Server. Möglich ist dies durch eine Internetverbindung über eine GPRS Verbindung. Die Idee sieht in meinem Kopf ungefähir so aus:

serverclient.png

Der Serveranwendung soll in C++ geschrieben werden, da der Server unter Linux läuft. Die Clients in C# oder C++ .NET. Je nach dem, was mir leichter fällt.

NATÜRLICH darf man nicht übermütig sein, so soll es blos am ende aussehen. Ich hab am Anfang nur an ein Internen Chat gedacht in "reinem .NET" Code

Was mir halt fehlt sind Referenzen, um diese Techniken zu erlernen. Ich bitte euch mich nicht mit Google Suchbefehlen wie "Netzwerkprogrammierung .NET" vollzubombadieren. Ich bin nicht der einzige, der die Netzwerkprogrammierung erlernen will und ich möchte gerne etwas lesen wo jemand schonmal dazu gesagt hat "Wow, das ist klar, strukturiert und verständlich aufgebaut".

Das einzige gescheite was ich grad nebenher lese ist ein MSDN Artikel: Netzwerkprogrammierung

Ich danke euch im Vorraus

Liebe Grüße

errox

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich denke die zentrale Frage wäre, willst Du ein Protokoll selbst entwickeln bzw musst Du es selbst entwickeln oder soll lieber ein Standard verwendet werden.

Ich kann jetzt mal in den Raum "Webservices" werfen, dafür gibt es entsprechende fertige Komponenten. Würde sich aber nur anbieten, wenn Du nicht "Echtzeit" arbeiten musst, da Du doch schon immer Overhead mit schleppen musst. Der Vorteil würde bestehen, dass er über http(s) kommuniziert und eben dadurch auch firewall-technisch relativ wenig Probleme macht.

Vielleicht führst Du einmal aus, was für Daten zwischen Client und Server ausgetauscht werden sollen und was letztendlich als konkrete Anwendung geplant ist

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo flashpixx,

du hast ja Bereits einmal mein Theard bezüglich dem FlashChat gesehen. Das soll ja mehr oder Weniger damit Verknüpft werden.

Also ich schätze mal aus dem Bauch heraus, dass ich lieber ein Standardprotokoll verwende ( TCP/IP ). Ich mein, es ist relativ viel am anfang schon ein eigenes zu schreiben :)

Im moment müsste ich NICHT in Echtzeit arbeiten, wäre aber vom Vorteil. Später soll das ja auch Geschäftlich verwendet werden.

Da ist mein nächstes Problem: Firewalls. Welche Ports sind für mich Verwendbar?

Was ich letzenendes erreichen will ist eine Anwendung, die in echtzeit von einem Mobilen endgerät daten von A nach B ladet. z.B. aktuelle Position ( GPS ). Aber bis ich soweit bin, dauert es noch lange.

Ich bin ja nicht mal in der Lage ein Programm zu schreiben, wo ich auf PC A auf einem Button drücke und auf PC B eine MessageBox erscheint, wenn auf PC A der Button gedrückt wurde. Wenn ich das kann, können wir weiter reden :D

Liebe Grüße

errox

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also ich schätze mal aus dem Bauch heraus, dass ich lieber ein Standardprotokoll verwende ( TCP/IP ). Ich mein, es ist relativ viel am anfang schon ein eigenes zu schreiben :)

Du solltest Dich erst einmal mit den Netzwerkgrundlagen vertraut machen, TCP/IP ist nicht ein, sondern sind zwei Protokolle

Transmission Control Protocol ? Wikipedia

Internet Protocol ? Wikipedia

Aber warum zwingend TCP und nicht UDP ?

Da ist mein nächstes Problem: Firewalls. Welche Ports sind für mich Verwendbar?

Diese Frage kann Dir niemand beantworten, im Grunde von 0 bis 2^16 -1.

Ich bin ja nicht mal in der Lage ein Programm zu schreiben, wo ich auf PC A auf einem Button drücke und auf PC B eine MessageBox erscheint, wenn auf PC A der Button gedrückt wurde. Wenn ich das kann, können wir weiter reden :D

Du solltest Dich wirklich mal mit den einfachsten Netzwerkgrundlagen beschäftigen, d.h. ein Byte von Rechner A zu B zu senden. Es bringt rein gar nichts, wenn Du Dich mit Protokollspezifikationen auseinander setzt, bevor Du die Grundlagen nicht sicher beherrscht

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du solltest Dich wirklich mal mit den einfachsten Netzwerkgrundlagen beschäftigen, d.h. ein Byte von Rechner A zu B zu senden. Es bringt rein gar nichts, wenn Du Dich mit Protokollspezifikationen auseinander setzt, bevor Du die Grundlagen nicht sicher beherrscht

Hallo,

wo wir grade bei dem Thema sind. Ich bin auch begeisterter Freizeitprogrammierer und möchte auch einen kleinen Einblick in die Netzwerktechnik werfen. Habe schon Erfahrungen mit DNS, HTTP, FTP, usw. wie das alles funktioniert und aussieht.

Um meine Grundlagen zu stärken suche ich jetzt ein gutes Tutorial oder Buch:)

Könnt ihr mir vll was empfehlen ??

mfg

jan

Link zu diesem Kommentar
Auf anderen Seiten teilen

Könnt ihr mir vll was empfehlen ??

Generell würde ich Literatur verwenden, wo Socket Programmierung erklärt ist. Ich persönlich, auch wenn wir hier im .NET Forum sind, würde sogar eher sagen, dass ein Anfänger vielleicht "back-to-the-roots" gehen sollte und vielleicht einmal grundlegende Beispiele zu Sockets unter C schreiben sollte. Damit lassen sich recht schnell Grundkenntnisse lernen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was sagt ihr zu dem hier:

Computernetzwerke. Von den Grundlagen zur Funktion und Anwendung: Amazon.de: Rüdiger Schreiner: Bücher

Hat gute Bewertungen und ist auch nicht zu teuer. In dem Buch wird eigentlich alles grundlegende behandelt.

Programmiertechnisch wollte ich jetzt nicht gleich anfangen, weil bin ich hauptsächlich auf Web-Ebene mit PHP, JavaScript, Python, HTML, blabla... tätig :D

mfg

jan

Link zu diesem Kommentar
Auf anderen Seiten teilen

Aber warum zwingend TCP und nicht UDP ?

Laut MSDN Ist TCP zuverlässiger. Die Datenpakete werden einmal gesendet, auf bedarf wieder, wenn das Paket nicht angekommen ist, in der gleichen Reihenfolge. Kurz: P2P.

UDP Hat Zwar mehr Performance, is aber eher für LiveStream, OnlineGames gedacht. LAUT MSDN!

Du solltest Dich wirklich mal mit den einfachsten Netzwerkgrundlagen beschäftigen, d.h. ein Byte von Rechner A zu B zu senden. Es bringt rein gar nichts, wenn Du Dich mit Protokollspezifikationen auseinander setzt, bevor Du die Grundlagen nicht sicher beherrscht

Eigentlich war in dem Thema meine Frage:

Was mir halt fehlt sind Referenzen, um diese Techniken zu erlernen. Ich bitte euch mich nicht mit Google Suchbefehlen wie "Netzwerkprogrammierung .NET" vollzubombadieren. Ich bin nicht der einzige, der die Netzwerkprogrammierung erlernen will und ich möchte gerne etwas lesen wo jemand schonmal dazu gesagt hat "Wow, das ist klar, strukturiert und verständlich aufgebaut".

Aber eigentlich hätt ich mehr an einem Onlinetutorial Gedacht. Weil die MSDN Seite hilft einem nicht so ganz.

Liebe Grüße

errox

Link zu diesem Kommentar
Auf anderen Seiten teilen

Laut MSDN Ist TCP zuverlässiger. Die Datenpakete werden einmal gesendet, auf bedarf wieder, wenn das Paket nicht angekommen ist, in der gleichen Reihenfolge. Kurz: P2P.

UDP Hat Zwar mehr Performance, is aber eher für LiveStream, OnlineGames gedacht.

Das ist richtig, beschreibt aber nicht den eigentlichen Unterschied zwischen TCP und UDP. Beides kann man für die gleichen Anwendungen einsetzen, nur manchmal ist das eine eben ausreichend oder günstiger.

Für die ersten Experimente würde ich TCP vorschlagen, in diesem Fall kann man auch leicht zu Übungszwecken einen simplen Mini-Server und dazugehörigen Client basteln. Alles weitere kann dann darauf aufbauen.

Aber eigentlich hätt ich mehr an einem Onlinetutorial Gedacht. Weil die MSDN Seite hilft einem nicht so ganz.

In der MSDN Library ist auch eine Einführung (verwendet C) in die Windows Socket Programmierung enthalten. An anderer Stelle sind auch Beispiele für einen einfachen Server und Client für .NET Entwickler vorhanden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Was mir halt fehlt sind Referenzen, um diese Techniken zu erlernen. Ich bitte euch mich nicht mit Google Suchbefehlen wie "Netzwerkprogrammierung .NET" vollzubombadieren.

Schau mal hier.

TCP/IP Socket-Programmierung in C#

TCP/IP Socket-Programmierung in C#

Das beste deutsche Tutorial zur Netzwerkprogrammierung in .NET (C#).

Dort steht auch worin die genauen Unterschiede zwischen TCP und UDP liegen und was wann eingesetzt wird. :)

Bearbeitet von AmunRa
Link zu diesem Kommentar
Auf anderen Seiten teilen

Also zunächst bedanke ich mich für alle Hilfreichen Beiträge.

Ich hoffe, ich werde in der nächsten Zeit meine Fortschritte machen und mich weiterhin Melden :D Ich werde mich nicht Speziell auf die .NET Klassen orientieren, da ich ja auch Serveranwendungen unter Linux erstellen muss, und das nicht so Praktisch ist, wenn ich ne .NET Klasse unter Linux verwenden will :D

Mono hin oder her, ich bleib bei der Klassischen Socket() Methode.

Vielen lieben Dank!

Liebe Grüße

errox

Link zu diesem Kommentar
Auf anderen Seiten teilen

Tut mir leid, dass ich erst jetzt antworte aber ich war auf etwas anderes Konzentriert.

Also in C++ muss ich Plattformunabhängig bleiben, da ich die Serveranwendung unter Linux zum laufen bringen will. Dass mit der Datenbankanbindung ist auch eine Wichtige sache. Die sollte unter MySQL ebenfalls funktionieren, aber ich denke das ist grad meine Größte sorge.

Gibt es vielleicht noch tutorials, die auch die UDP Protokolle erklären und ein gut erklärtes Beispiel, wie man einen Chat erstellt? ( Es muss nicht auf dem Niveau von Diversen Instant-Messaging sein, sondern das Server-Client Prinzip zu testen ) C# oder C++ .NET

Bitte eins, wo auch jemand Persönliche erfahrungen mit gemacht hat. Vielen Dank!

Liebe Grüße

errox

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gibt es vielleicht noch tutorials, die auch die UDP Protokolle erklären und ein gut erklärtes Beispiel, wie man einen Chat erstellt? ( Es muss nicht auf dem Niveau von Diversen Instant-Messaging sein, sondern das Server-Client Prinzip zu testen ) C# oder C++ .NET

Liest du eigentlich auch mit oder ist das hier eine One-Man-Show?

Ich hatte dir bereits glasklar einen Link gegeben.

TCP/IP Socket-Programmierung in C#

Dort wird das UDP bis zum Abwinken erklärt, auch das Server-Client Prinzip und sogar ein Chat. Alles sogar mit vielen Codebeispielen.

Lesen musst du schon selbst! :rolleyes:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also in C++ muss ich Plattformunabhängig bleiben, da ich die Serveranwendung unter Linux zum laufen bringen will.

Diese Aussage schließt sich eigentlich aus. Wenn Du für Linux entwickeln willst, dann würde ich auch direkt dafür entwickeln. Wofür brauchst Du noch Plattformunabhängigkeit?

Dass mit der Datenbankanbindung ist auch eine Wichtige sache. Die sollte unter MySQL ebenfalls funktionieren, aber ich denke das ist grad meine Größte sorge.

Wie gesagt, die Netzwerk- und Datenbankfunktionen sind von Qt wirklich sehr nett (beides habe ich im Einsatz). Wobei auch hier egal ist, welches DBMS Du nimmst, sofern z.B. ODBC Treiber vorhanden sind und Qt entsprechend kompiliert wurde

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab mir grad die Seite im geschäft angeguckt. Dort wird der "Weiter" Button angezeigt. Bei mir am HeimPC Weiterhin nicht.

Tut mir wirklich leid!

Hallo errox,

kannst du das mal näher beschreiben? Welcher "Weiter" Button ist nicht zu sehen? Der Graue ganz unten im Artikel?

Ich habe das gerade im Firefox 3, Opera und Internet Explorer getestet. Überall wird der Button richtig angezeigt.

Ansonsten gibt es noch oben rechts eine Tabelle mit dem Inhaltsverzeichnis.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...