kostenloser Webspace werbefrei: lima-city


C# zwei Clienten verbinden

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    schinkenmedia

    Kostenloser Webspace von schinkenmedia

    schinkenmedia hat kostenlosen Webspace.

    Guten Abend,

    als Übung möchte ich über eine Konsolenanwendung in C# einen Integer einlesen, ihn über das Internet an eine IP senden und ihn dort über eine Konsolenanwendung ausgeben lassen.

    Ich habe bereits im Internet recherchiert, ich muss aber beschämt zugeben das die Lösungen dort noch über meinem Niveau sind. Dennoch möchte ich mich davon nicht abhalten lassen und suche daher hier im Forum nach anfängergeeignetem Rat. Zwar mag diese Aufgabe sehr schwer sein, aber ich mag es über den Tellerrand zu gucken. :)

    Meine Kenntnisse:
    Ich programmiere von der Schule aus seit einem halben Jahr. Wir haben natürlich schon if/else, switch/case, Schleifen und Arrays durchgenommen. Derzeit zerpflücken wir unsere Programme in Methoden. Ich selber bin schon etwas fortgeschritten und mache schon spaßeshalber kleinere Anwendungen in Forms und WPF, dies ist jedoch nicht nennenswert.

    Ich hoffe auf guten Rat und viel Optimismus! :)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Guck dir mal Sockets an.
    Allerdings hast du dann einen Server und einen Client.
  4. also erstmal zur Theorie:

    2 Clients miteinander verbinden clappt nie als Client-Client, es braucht wen, der steuert. bei einer gleich berechtigten Verbindung nennt man das eine peer-to-peer-Verbindung, was darauf hinaus läuft, dass du an beiden Stationen einen Client-socket und einen Server-socket hast. der Client-Socket kontaktiert den Server-Socket, darüber sendest du deine informationen. wenn du was zurück senden lassen willst, kann der Server-socket die information über diese Verbindung liefern, aber der Server kann von sich aus den Client nicht erst-Kontaktieren. Also wenn es in eine Richtung gezielt gehen soll, reicht es aus, wenn du 2 programme hast, einmal einen Client und einmal einen Server(mit jeweiligem Socket). Wenn du nciht weißt, wann wer was wem mitteilen will, solltest du ein programm schrieben, welches einen Client und einen Server-Socket hat. dieses Programm kann dann verbindungen von außen annehmen und eigene verbidngungen zu anderen Stationen mit diesem Programm aufnehmen.

    http://msdn.microsoft.com/de-de/library/vstudio/system.net.sockets.socket

    da findest du, wie seth93 schon angedeutet hat, die socket-Klassenbeschreibung, wenn du weiter suchst, findest du vielleicht ein tutorial, wie man es anwendet. es ist gar nciht so schwer, du musst nur wissen, welches Netzwerkprotokol du nutzen willst, in einem Fall wird es wahrscheinlich eine UDP-Verbindung sein, wenn du schnell was schicken willst, ansonsten nimm im zweifelsfall lieber TCP. hat zwar mehr overhead, aber wenn du dein Programm erweitern willst, hast du mehr möglichkeiten der Kommunikation.
  5. Hi :), es gäbe da noch die WCF Technologie von Microsoft.

    Diese ist speziell für .net Anwendungen gedacht.
    Es gibt einige Tutorials in der MSDN dafür. Habe die vor ein paar Jahren mal abgearbeitet. Sind nicht sonderlich schwer und du hast schnell Erfolg damit. Die Tutorials setzen allerdings schon stark auf Objektorientierung und erweiterte Programmiertechniken. Schau es dir einfach mal an.

    http://msdn.microsoft.com/en-us/library/vstudio/ms735119(v=vs.90).aspx
  6. Autor dieses Themas

    schinkenmedia

    Kostenloser Webspace von schinkenmedia

    schinkenmedia hat kostenlosen Webspace.

    Vielen Dank für eure Antworten. Ich werde mich diese Woche mal damit auseinandersetzen und eventuell auch meinen Programmierlehrer um Rat fragen :)

    Grüße
  7. Hi,
    statt direkt mit den Sockets in c# zu arbeiten währe es einfacher mit dem tcplistener/client
    die beiden funktionieren ähnlich wie die sockets, sind jedoch einfacher zu handhaben und schneller aufzusetzen.
    Um die beiden Objekte zu erzeugen brauchst du nur die adresse und den port, bei den sockets musst du noch verschiedene sachen angeben wie die art des protokolls.
    Mfg
    DevHex
  8. devhex schrieb:
    Hi,
    statt direkt mit den Sockets in c# zu arbeiten währe es einfacher mit dem tcplistener/client
    die beiden funktionieren ähnlich wie die sockets, sind jedoch einfacher zu handhaben und schneller aufzusetzen.
    Um die beiden Objekte zu erzeugen brauchst du nur die adresse und den port, bei den sockets musst du noch verschiedene sachen angeben wie die art des protokolls.
    Mfg
    DevHex


    An sich ein interessanter Ansatz. Aber da der TE das auch macht um die Sprache zu lernen, finde ich sollte man gleich den gründlichen Weg gehen, dass man sich auch etwas mit Netzwerkprotokollen beschäftigt. Ich finde, wenn man als Entwickler im Netzwerk anfängt rumzugurken, sollte man sich auch mit dem Netzwerk beschäftigen, und nicht einfach in eine Black-Box was reinschicken.... Das ist oft der Grund, warum Software scheisse läuft, weil die Entwickler kein Verständnis für die Blackbox haben, auf der sie da entwickeln... vor allem bei Microsoft scheint es viele Blackbox-Programmierer zu geben... ihren eigenen Code-Teil kriegen sie relativ gut hin, aber was um sie herum passiert scheint sie da nicht wirklich zu interessieren... wahrscheinlich sind wieder andere dann damit beschäftigt, Codefragmente zusammen zu führen... irgendwie muss man ja 5000 Leute beschäftigen...
  9. Da geb ich dir Recht das man sich nicht nur mit den fertigen teilen des Baukastens beschäftigen sollte. Jedoch ist der Tcplistener/client am Anfang leichter zu erstellen. Wenn man das dann geschafft hat und eine ungefähre Ahnung hat wie das Funktioniert kann man sich ja den Sockets widmen.
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!