Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
TCP/IP Daten senden/empfangen
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

Ich danke dir
private Nachricht | Beiträge des Benutzers
alf468
myCSharp.de - Member



Dabei seit:
Beiträge: 196

Themenstarter:

beantworten | zitieren | melden

Je nachdem ob der User Singleplayer oder Multiplayer auswählt soll eine andere Klasse geladen werden.Die Klassen habe ich jeweils in eine dll Datei geschrieben (ein komplettes Fenster) .Nun will ich aber dass sich kein neues Fenster öffnet sondern dass das alte Fenster mit dem Menü überschrieben wird. Also das gleiche als würde eine neue InitializeComponent() geladen werden.
Ich will hat diesen Übergangseffekt vermeiden wo sich ein Fenster schließt und ein neues öffnet
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo alf468,

das ist ein komplett anderes Thema und gehört m.E. in einen anderen Thread (und in ein anderes Forum, nämlich Windows Forms).

herbivore
private Nachricht | Beiträge des Benutzers
Kostas
myCSharp.de - Member



Dabei seit:
Beiträge: 597

Wenn Client getrennt wurde, und der Server senden möchte

beantworten | zitieren | melden

Hallo Zusammen,

Wenn sich ein Client auf dem Server verbindet, wird im Beispielcode
vom Programmierhans die connection in eine Hashtable gespeichert.
Somit kann der Server eine Nachricht zum Client senden.
Es kann vorkommen das der Client sich unsachgemäß beendet und der
Server nichts davon mitbekommt.
Wie behandelt man diesen Zustand richtig?

Gruß Kostas
private Nachricht | Beiträge des Benutzers
qwert_a
myCSharp.de - Member

Avatar #avatar-1911.gif


Dabei seit:
Beiträge: 57

beantworten | zitieren | melden

Sehr guters Beispiel. Danke
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Beim 2ten Sendevorgang an einen toten Client gibt es eine Exception.

Dann wird der tote Client aus der Hashtable entfernt.

Bei sehr wichtigen Daten (wo absolut nichts verloren gehen darf) empfehle ich die Verwendung eines Handshakes... (der Client schickt etwas zurück um dem Sender mitzuteilen dass er die Message erhalten und gegebenenfalls verarbeitet hat.
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
Kostas
myCSharp.de - Member



Dabei seit:
Beiträge: 597

beantworten | zitieren | melden

Danke Programierhans,

ich werde einfach die exception auswerten nach dem Senden.

Ich habe aktuell ein weiteres Problem. Ich kann die Methode
private void Listen() nicht debugen. Wenn ich ein Haltepunkt
auf

this._TcpListener = new TcpListener(IPAddress.Parse("0.0.0.0"), 4711);
setze, springt er an dieser stelle hin, kann aber nicht per Einzelschritt
weitermachen. Es springt einfach raus und macht weiter. Zumindest habe ich
das Gefühl das er weiter macht.
Kann es sein das es etwas mit die Threads zu tun hat?


Gruß Kostas
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1.815
Herkunft: NRW

beantworten | zitieren | melden

Hallo!

Bin grade dabei, für das Client-/Server-Problem eine Komponente zu schreiben, welche den Programmierer von der eigentlichen Implementierung erlöst und entsprechende Mechanismen, etc. zur Verfügung stellt.

Falls Interesse daran besteht, mach ich da gern ein Tutorial draus, und werd' auch selbstverständlich den Code inkl. Beispiel hier posten.
Nobody is perfect. I'm sad, i'm not nobody
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo tom-essen,

gute Tutorials nehmen wir immer gerne.

herbivore
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1.815
Herkunft: NRW

beantworten | zitieren | melden

OK, hab's mir schonmal notiert.
Wird aber noch ca. 2 Wochen dauern, bis ich anfangen kann, da ich z.Zt. noch in einem grossen Projekt an der Uni arbeite, nur damit alle Interessierten schonmal bescheid wissen
Nobody is perfect. I'm sad, i'm not nobody
private Nachricht | Beiträge des Benutzers
DerHulk
myCSharp.de - Member

Avatar #avatar-1789.png


Dabei seit:
Beiträge: 270
Herkunft: Koblenz

beantworten | zitieren | melden

Hallo zusammen,

hätte da noch ne kurze Frage zu dem hier beschriebenen Thread.
Und zwar wie/ist es möglich das der TCP-Listner die IP der bei Ihm connecteten
Clients sammeln kann?!

Mir ist klar das die Clients dem Server(Listener) dies Daten auch per Datenstrom schicken könnten jedoch währe das ja eine Übertragung die unnötig ist da er intern wissen muss wie die IP ist (im Hastablet ist der Client ja gespeichert).

Biete das Objekt Client eine Möglichkeit die Ip des Client zu ermitteln?

mfg der Hulk
private Nachricht | Beiträge des Benutzers
tom-essen
myCSharp.de - Experte

Avatar #avatar-2140.png


Dabei seit:
Beiträge: 1.815
Herkunft: NRW

beantworten | zitieren | melden

Hallo!

Hier noch ein Tutorial zum Thema:
[Tutorial] Client-/Server-Komponente über TCP-Sockets
Nobody is perfect. I'm sad, i'm not nobody
private Nachricht | Beiträge des Benutzers
Tosek
myCSharp.de - Member



Dabei seit:
Beiträge: 38
Herkunft: Gelsenkirchen

funktioniert nicht mit jedem freien Port

beantworten | zitieren | melden

hallo,

ich habe ein merkwürdiges phänomen:

wenn ich das Sample mit ip 127.0.0.1 laufen lasse und Port 10000 nehme, dann klappt das Sample nicht.

Nehme ich den Port 6667, dann läuft das Sample, obwohl beide Ports unbenutzt sind.

Woran kann das liegen?
There are 10 diffent types of people in this world: Those who understand binary and those who don't....
private Nachricht | Beiträge des Benutzers
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Port 10000 ist doch reserviert für ... guckst Du hier: http://www.ndmp.org/
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers