Du bist nicht angemeldet.

kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

21

Sonntag, 22. November 2009, 22:42

Nunja, sauber ist die Methode nicht, sie blockiert nur die Fehlermeldung, behandelt aber nicht den Fehler selbst. Hier bietet sich Delegaten an (siehe dazu u.a. MSDN). Wenn sich ein Client disconnected, wird das vom Server behandelt:

Visual Basic Quellcode

1
2
3
4
Catch ' Fehler...
list.Remove(con) ' Client aus der Liste der verbundenen Clients entfernen
Console.WriteLine(con.nick & " has exit.") ' Ausgabe
Exit Do ' Schleife und anschließend Sub verlassen.

22

Sonntag, 22. November 2009, 23:44

Jaaaa, das hab ich auch gesehn. Mich wunderte es nur das A die Connection trotzdem in der Liste blieb und B diese Exception gar nicht ausgeführt wurde... Aber als ich mir den Client mal etwas näher angeschaut habe und beim Beenden ein

Visual Basic Quellcode

1
Client.Close


eingebaut habe ;-) ging zumindest die Exception. Den Rest werde ich mir morgen Abend mal genauer anschauen! Unter anderem auch die Deleganten ?( bin ja schon gespannt was das wird...

Schönen Abend!
Thomas

kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

23

Montag, 23. November 2009, 14:18

Jop, Verbindung schließen ist im Code gar nicht vorhanden. Um erst einmal grundsätzlich zu verstehen, um was es sich bei .NET-Delegaten handelt und wie sie funktionieren empfehle ich dir diesen Wikipedia-Artikel. In der MSDN gibt es anschließend schöne & lehrreiche Beispiele zur Verwendung.

LG

Cannon

Server Elite Geschäftsführer

  • »Cannon« ist männlich

Beiträge: 98

Dabei seit: 15. September 2009

Wohnort: Sinsheim

  • Private Nachricht senden

24

Montag, 23. November 2009, 19:30

schade das die MultiServer.exe nicht auf Linux Leuft
Der Kaufmann: 1%

kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

25

Montag, 23. November 2009, 20:05

Mono hast du schon probiert?

Cannon

Server Elite Geschäftsführer

  • »Cannon« ist männlich

Beiträge: 98

Dabei seit: 15. September 2009

Wohnort: Sinsheim

  • Private Nachricht senden

26

Dienstag, 24. November 2009, 12:14

Wie speicher ich den nick so das er beim Nächsten Start des Programs schonn als Standartwert angegeben ist und man nur auf ok klicken muss?
Der Kaufmann: 1%

prosnooper

Registrierter Benutzer

  • »prosnooper« ist männlich

Beiträge: 209

Dabei seit: 28. März 2009

  • Private Nachricht senden

27

Dienstag, 24. November 2009, 15:46

My.Settings?
Grüße prosnooper

Cannon

Server Elite Geschäftsführer

  • »Cannon« ist männlich

Beiträge: 98

Dabei seit: 15. September 2009

Wohnort: Sinsheim

  • Private Nachricht senden

28

Dienstag, 24. November 2009, 16:41

ja hab ich versucht krig ich aber ned hin ;((
Der Kaufmann: 1%

yeti2078

Registrierter Benutzer

  • »yeti2078« ist männlich

Beiträge: 348

Dabei seit: 14. August 2007

Frühere Benutzernamen: gogogigo

Hilfreich-Bewertungen: 17

  • Private Nachricht senden

29

Dienstag, 24. November 2009, 17:42

<= Klick mich!

BTT:
Schönes Tutorial!
Gruß yeti

Es hat bereits 1 registrierter Benutzer diesen Beitrag als hilfreich eingestuft.

Benutzer, die diesen Beitrag hilfreich fanden:

Jopi24

Honeypot

Registrierter Benutzer

Beiträge: 58

  • Private Nachricht senden

30

Mittwoch, 25. November 2009, 22:29

Bei mir geht das ganze leider garnicht. Firewall aus, richtige IP , und auf dem Router sind keine Ports gesperrt. Aber es geht trotzdem nicht hat vielleicht einer eine Idee?

kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

31

Donnerstag, 26. November 2009, 19:31

Probier erstmal die Loopback-IP (127.0.0.1).

Honeypot

Registrierter Benutzer

Beiträge: 58

  • Private Nachricht senden

32

Donnerstag, 26. November 2009, 19:35

Also funktioniert hat es jetzt. Habe es auf unserem 2. Rechner getestet und es geht. Aber bei einem Kumpel geht es nicht. Also geht es wahrscheinlich nicht über unseren Router drüber aber alle Porte sind frei und bei ihm auch.

kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

33

Donnerstag, 26. November 2009, 20:05

- Der Server braucht einen freien Port
- Der Client braucht keinen freien Port, Port muss aber mit Server-Port übereinstimmen - und IP mit Server-IP

Ist das der Fall?

Honeypot

Registrierter Benutzer

Beiträge: 58

  • Private Nachricht senden

34

Donnerstag, 26. November 2009, 21:19

Ja Port 8000. Alles müsste stimmen

viperkill

Registrierter Benutzer

  • »viperkill« ist männlich

Beiträge: 371

Dabei seit: 10. August 2009

Wohnort: Papierkorb

Hilfreich-Bewertungen: 9

  • Private Nachricht senden

35

Sonntag, 29. November 2009, 17:13

Wow, echt cool!

Nur mal so eine Frage habe eigentlich nicht vor das zu nutzen aber wäre es therotisch möglich das über LAN zumachen ? Oder würde das sogar jetzt schon funktionieren ?

XProg

Mehr als zuviel

Beiträge: 129

Dabei seit: 13. April 2009

Hilfreich-Bewertungen: 8

  • Private Nachricht senden

36

Sonntag, 29. November 2009, 18:29

funzt jetzt schon da du dich auch auf deinem eigenen Pc auf den Server kommst :rolleyes:
"Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program."

- Linus Torvalds

Cannon

Server Elite Geschäftsführer

  • »Cannon« ist männlich

Beiträge: 98

Dabei seit: 15. September 2009

Wohnort: Sinsheim

  • Private Nachricht senden

37

Mittwoch, 2. Dezember 2009, 21:24

wen ich die exe Starten Möchte Bekomm ich folgende Meldung

WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v1.1.4322

** (MultiServer.exe:654): WARNING **: The class System.Collections.Generic.List`1 could not be loaded, used in mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Unhandled Exception: System.TypeLoadException: Could not load type 'MultiServer.Module1' from assembly 'MultiServer, Version=1.0.0.0, Culture=neutral'.
Der Kaufmann: 1%

picoflop

Böse und gemein!

Beiträge: 5 843

Dabei seit: 19. März 2009

Hilfreich-Bewertungen: 546

  • Private Nachricht senden

38

Donnerstag, 3. Dezember 2009, 00:01

used in mscorlib, Version=4.0.0.0

Stinkt irgendwie nach Framework 4.0 ... BETA
right?
ja -> Beschwer dich bei MS. BTW: Betas sind bekannt dafür, dass Fehler auftreten können.
Von Hilfeanfragen via PN ist ABZUSEHEN!


GUI - Threading Best Of - Async - x64 Excp

Yanke

Registrierter Benutzer

Beiträge: 2

Dabei seit: 7. Dezember 2009

  • Private Nachricht senden

39

Montag, 7. Dezember 2009, 16:35

Hallo,
auch von mir erst mal ein Danke für das Tutorial.

Angenommen der Server möchte eine Message an einen bestimmten Klienten senden, wie müsste das aussehen ?
Wie spreche ich diese Connection an ?

kevin89

Super Moderator

  • »kevin89« ist männlich
  • »kevin89« ist der Autor dieses Themas

Beiträge: 3 881

Dabei seit: 16. April 2008

Hilfreich-Bewertungen: 155

  • Private Nachricht senden

40

Montag, 7. Dezember 2009, 16:41

Hi,

alle Verbindungen befinden sich ja in der Private list As New List(Of Connection). Im Prinzip kannst du den Server einfach um die folgende Prozedur erweitern:

Visual Basic Quellcode

1
2
3
4
Sub SendToClient(ByVal c As Connection, ByVal data As String)
c.streamw.WriteLine(data)
c.streamw.Flush()
End Sub


Der jeweilige Client lässt sich ja z.B. durch den Nick identifizieren. Da dieser allerdings nicht eindeutig ist, empfiehlt sich z.B. die Verwendung der IP. Dementsprechend wäre eine kleine Anpassung notwendig.

LG

Social Bookmarks