Startseite
Stellenmarkt
Downloads
Kontakt
  Community Center:   Forum  |  Gruppen  |  Chat  |

Zurück   Forum Fachinformatiker.de > Programmierung > .NET



Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18.09.2009, 20:58   #1
Reg.-Benutzer
 
Reg.-Datum: 12.06.2007
Standard Netzwerkprogrammierung Tutorial in .NET benötigt

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:



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
__________________
Everything should be made as simple as possible, but not simpler - Albert Einstein
errox ist offline   Mit Zitat antworten
Alt 18.09.2009, 21:32   #2
Moderator Java
 
Reg.-Datum: 24.07.2007
Ort: auf nem Berg
Standard

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
flashpixx ist offline   Mit Zitat antworten
Alt 18.09.2009, 23:58   #3
Reg.-Benutzer
 
Reg.-Datum: 12.06.2007
Standard

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

Liebe Grüße

errox
__________________
Everything should be made as simple as possible, but not simpler - Albert Einstein
errox ist offline   Mit Zitat antworten
Alt 19.09.2009, 00:11   #4
Moderator Java
 
Reg.-Datum: 24.07.2007
Ort: auf nem Berg
Standard

Zitat:
Zitat von errox Beitrag anzeigen
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 ?

Zitat:
Zitat von errox Beitrag anzeigen
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.

Zitat:
Zitat von errox Beitrag anzeigen
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
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
flashpixx ist offline   Mit Zitat antworten
Alt 19.09.2009, 00:17   #5
Reg.-Benutzer
 
Reg.-Datum: 16.06.2009
Standard

Zitat:
Zitat von flashpixx Beitrag anzeigen
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
computerjan ist offline   Mit Zitat antworten
Alt 19.09.2009, 00:46   #6
Moderator Java
 
Reg.-Datum: 24.07.2007
Ort: auf nem Berg
Standard

Zitat:
Zitat von computerjan Beitrag anzeigen
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
flashpixx ist offline   Mit Zitat antworten
Alt 19.09.2009, 00:50   #7
Reg.-Benutzer
 
Reg.-Datum: 16.06.2009
Standard

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

mfg
jan
computerjan ist offline   Mit Zitat antworten
Alt 19.09.2009, 00:59   #8
Reg.-Benutzer
 
Reg.-Datum: 12.06.2007
Standard

Zitat:
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!

Zitat:
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:

Zitat:
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
__________________
Everything should be made as simple as possible, but not simpler - Albert Einstein
errox ist offline   Mit Zitat antworten
Alt 19.09.2009, 02:08   #9
Reg.-Benutzer
 
Reg.-Datum: 12.08.2001
Ort: Berlin
Standard

Zitat:
Zitat von errox Beitrag anzeigen
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.

Zitat:
Zitat von errox Beitrag anzeigen
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.
Bubble ist offline   Mit Zitat antworten
Alt 19.09.2009, 02:38   #10
Reg.-Benutzer
 
Reg.-Datum: 12.05.2009
Ausrufezeichen

Zitat:
Zitat von errox Beitrag anzeigen
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.

Geändert von AmunRa (19.09.2009 um 02:42 Uhr)
AmunRa ist offline   Mit Zitat antworten
Alt 21.09.2009, 09:08   #11
TDM
Reg.-Benutzer
 
Benutzerbild von TDM
 
Reg.-Datum: 08.11.2004
Ort: Am Anus der Welt.
Standard

Zitat:
Zitat von errox Beitrag anzeigen
Aber eigentlich hätt ich mehr an einem Onlinetutorial Gedacht. Weil die MSDN Seite hilft einem nicht so ganz.
Nicht?

Nicht das, was du wolltest? (Daten senden/empfangen)
__________________
Friedlich sei der Weg der Stromkäfer unter der Last der Bitkrümel!
TDM ist offline   Mit Zitat antworten
Alt 23.09.2009, 21:08   #12
Reg.-Benutzer
 
Reg.-Datum: 12.06.2007
Standard

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 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

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

Vielen lieben Dank!

Liebe Grüße

errox
__________________
Everything should be made as simple as possible, but not simpler - Albert Einstein
errox ist offline   Mit Zitat antworten
Alt 23.09.2009, 21:15   #13
Moderator Java
 
Reg.-Datum: 24.07.2007
Ort: auf nem Berg
Standard

Zitat:
Zitat von errox Beitrag anzeigen
da ich ja auch Serveranwendungen unter Linux erstellen muss
Da würde ich Dir sehr zu C++ raten, wenn es vor allem auch cross-plattform werden soll. Mit ASIO der Boost kannst Du das recht gut realisieren Boost.Asio
flashpixx ist offline   Mit Zitat antworten
Alt 24.09.2009, 14:25   #14
Reg.-Benutzer
 
Reg.-Datum: 12.05.2009
Standard

Boost.Asio ist ein Krampf! Solange der C++ Standard keine Netzwerkprogrammierung definiert und das der Plattform überlässt, rate ich zu Qt 4.

Das ist für C++-Programmierer die richtige Wahl um plattformunabhängig zu bleiben.
AmunRa ist offline   Mit Zitat antworten
Alt 24.09.2009, 14:34   #15
Moderator Java
 
Reg.-Datum: 24.07.2007
Ort: auf nem Berg
Standard

Zitat:
Zitat von AmunRa Beitrag anzeigen
Boost.Asio ist ein Krampf! Solange der C++ Standard keine Netzwerkprogrammierung definiert und das der Plattform überlässt, rate ich zu Qt 4.
Naja kann man geteilter Meinung sein, aber Qt ist auch eine feine Sache (auch für Datenbankanbindung)
flashpixx ist offline   Mit Zitat antworten
Antwort

Lesezeichen
Zurück   Forum Fachinformatiker.de > Programmierung > .NET

Themen-Optionen
Ansicht


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wir von der DevGroup Ruhrpott veranstalten wieder einen .NET Workshop StefanE Ankündigungen und Sitenews 0 18.03.2009 10:36
.net Problem casio Anwendungssoftware 14 20.05.2008 23:23
Tipp: .NET Programmierung unter Win98 Technician Delphi/RPG+CL/Sonstige 0 20.06.2003 08:25
.net Info McGuire Referate 4 23.09.2002 14:10
Java für .NET HarterSeemann Java 24 20.05.2002 23:51


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:32 Uhr.