tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
514
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von String
    String String ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Beiträge
    238
    Hallo zusammen,

    ich bastle gerade an einem Multi-User Socket Server.
    Aber ich habe da noch zwei grundlegende Fragen:

    1) Lasse ich den Client-Server stream die ganze Zeit geöffnet oder öffne ich ihn "immer wieder", nur dann wenn ich Daten senden will?

    2) Wie kann ich den Stream richtig schließen, wenn der Client sich einfach schließt ohne den Stream vorher zu beenden?

    Zu 2):
    Aktuell sieht der Client-Thread so aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
      texte("Neuer Client gestartet")
            Dim weiter As Integer
     
            Do
                weiter = vclient.lesen()
                If weiter = 1 Then
                    Exit Do
                End If
            Loop
     
            vclient.stream.Close()
            clients.Remove(vclient)
            texte("Client geschlossen")

    DIe Funktion Client.lesen sieht so aus:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
     Try
                If stream.CanRead Then
                    Dim bytes(Form1.clientStream.ReceiveBufferSize) As Byte
                    stream.Read(bytes, 0, CInt(Form1.clientStream.ReceiveBufferSize))
                    Dim clientdata As String = Encoding.ASCII.GetString(bytes)
     
                    Return 0
                Else
                    Return 1
                End If
     
            Catch ex As Exception
                Return 1
            End Try

    Schließt der Client das Programm ohne den Stream zu beenden, merkt der Server nicht, dass der Client nicht mehr erreichbar ist..
    Kann mir da jemand einen Tipp geben, wie ich das richtig löse?

    Beste Grüße und Dank im Voraus.

    paD
     

  2. #2
    Erik Erik ist offline Mitglied Gold
    Registriert seit
    Jul 2008
    Beiträge
    171
    Hi,

    Zitat Zitat von String
    1) Lasse ich den Client-Server stream die ganze Zeit geöffnet oder öffne ich ihn "immer wieder", nur dann wenn ich Daten senden will?
    Wie oft sendest du denn Daten? bzw. in welchem Abstand?
    Das kommt immer auf die Situation an.

    EDIT: Sehe grad du programmierst ein Multiplayer - Spiel. Wenn du das dafür brauchst rate ich dir die Streams offen zu lassen

    Zitat Zitat von String
    2) Wie kann ich den Stream richtig schließen, wenn der Client sich einfach schließt ohne den Stream vorher zu beenden?
    Normaler Weise wird dann nach einiger Zeit bei dem Server eine Exception geworfen. Also einfach Try-Catch drum.

    Gruß
    Erik
    Geändert von Erik (16.01.10 um 10:51 Uhr)
     

  3. #3
    Avatar von Razorhawk
    Razorhawk Razorhawk ist offline Webdesigner und MSP
    Registriert seit
    Aug 2002
    Ort
    Berlin
    Beiträge
    1.363
    Frage zwischendrin.

    Könnte der Server denn nicht in bestimmten Zeitabständen den Client eine Anfrage senden "ob er denn noch da ist"?

    Wenn keine Antwort nch einer gewissen Zeit kommt, dann kann die Verbindung doch geschlossen werden.
     
    Sebastian Schütze
    Offizieller
    Microsoft Junior Student Partner
    und Microsoft Partner
    Humboldt Universität zu Berlin

    Email: sebastian.schuetze@studentpartners.de
    Website der MSP: www.studentpartners.de

    Webdesign: Razorstudio
    Website: www.razorstudio.de
    Email: Sebastian.Schuetze@razorstudio.de

Ähnliche Themen

  1. 3x kleine Fragen... :)
    Von KD3 im Forum PHP
    Antworten: 9
    Letzter Beitrag: 06.05.07, 13:33
  2. 2 kleine Fragen
    Von psycomantis im Forum Coders Talk
    Antworten: 16
    Letzter Beitrag: 26.08.04, 17:46
  3. 2 kleine Fragen
    Von EchseKiuta im Forum Creative Lounge
    Antworten: 6
    Letzter Beitrag: 29.07.04, 20:13
  4. 2 kleine fragen
    Von Seth im Forum HTML & XHTML
    Antworten: 6
    Letzter Beitrag: 24.03.03, 12:37
  5. 2 Kleine Fragen
    Von Satansbrut im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 07.05.02, 09:12