Tcp Client Server Verbindung: Scheitert über Internet

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von Litti.

    Tcp Client Server Verbindung: Scheitert über Internet

    Hey Leute,

    Bei meinem Client Server Programm funktioniert nun alles super.... Allerdings nur im eigenen Netzwerk; über Internet klappt es nicht.

    - TCPListener hört ab und Client verbindet sich und sendet Nickname etc.
    - server nimmt client an und die strings und zeigt sie in einer list an

    Klappt super soweit. Aber über Internet passiert dieses phänomen:

    - Server hört ab, client verbindet sich und sendet strings
    - server nimmt die verbindung an, zeigt nix in der list an
    - verbindung wird unterbrochen

    Kann mir das nicht erklären. Ports etc sind ja eingestellt....allerdings bricht er dann ab...is das so ein unterschied zwischen netzwerk und internet?

    lg
    wenn er sich verbindet scheint es ja schonmal teilweise zu klappen.
    Die Bandbreite übers Internet ist normalerweise viel kleiner als die im eigenen Netzwerk - was hast du für eine Leitung und wie viel sendest du ca. pro sekunde? xD Je nachdem wie dein Code aufgebaut ist könnte es da imo zu Fehlern kommen...
    client:

    Quellcode

    1. Private Sub Verbinden()
    2. Try
    3. Me.MainClient = New TcpClient
    4. Me.MainClient.Connect(IPAdresse, Port)
    5. If Me.MainClient.Connected = True Then
    6. Me.Verbunden = True
    7. RaiseEvent Connected()
    8. Me.stReader = New StreamReader(Me.MainClient.GetStream)
    9. Me.stWriter = New StreamWriter(Me.MainClient.GetStream)
    10. Me.stWriter.WriteLine("TestSTring")
    11. Me.stWriter.Flush()
    12. Dim thEmpfangen As New Thread(AddressOf EmpfangeText)
    13. thEmpfangen.IsBackground = True
    14. thEmpfangen.Start()
    15. Else
    16. Me.Verbunden = False
    17. Reconnect()
    18. End If
    19. Catch ex As Exception
    20. Me.Verbunden = False
    21. Reconnect()
    22. End Try
    23. End Sub


    server:

    Quellcode

    1. Private Sub Akzeptieren()
    2. Try
    3. Me.MainListener = New TcpListener(New System.Net.IPAddress(0), Me.Port)
    4. Me.MainListener.Start()
    5. While Me.SollAkzeptieren
    6. secClient = Me.MainListener.AcceptTcpClient()
    7. Dim strReader As New StreamReader(secClient.GetStream)
    8. Dim FirstLine As String = strReader.ReadLine
    9. Dim cli As New client
    10. cli.ClientID = Me.AktuelleClientID
    11. Userliste.Add(cli)
    12. cli.stReader = strReader
    13. cli.Beginn(secClient)
    14. AddHandler cli.NeuerText, AddressOf UserNeuerText
    15. RaiseEvent NeuerUser(cli)
    16. Me.AktuelleClientID += 1
    17. End While
    18. Catch ex As Exception
    19. End Try
    20. End Sub


    hab noch ne client klasse auf server seite, also net wundern ;)
    dann lass mal die tryCatches weg und starte am besten beides in der IDE (ansonsten abwechselnd, hast ja mehrere Computer). Vllt findest du so etwas raus.

    Du sagst, der Server zeigt nichts in der Liste an. Möglich wäre also, dass der Client nichts sendet ODER der Server nicht richtig empfängt.
    ne hat sie net, hab sie ja testweise ausgeschaltet...hab die try catches auch weggemacht 8| und ich mach ja auch nen raiseevent um zu sehen ob der client den string sendet... jap er tut es...
    und diese fehlermeldung kommt
    Bilder
    • Unbenannt.png

      32,99 kB, 459×200, 142 mal angesehen
    nimm mal die .exe und starte sie aus einem anderen Verzeichnis, damit sich die Firewall nochmal meldet und teste das mal.

    EDIT: Stelll mal Dein Projekt hier rein, als .zip. Dann teste ich das mal.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    ich schätze mal iwo bei meinen readern oder writern wird es liegen ;) ich probier mal ein wenig rum und poste mal wenn ich es iwie gelöst bekomme ;) wenn wer bis dahin noch ideen hat die ich da mit einbringen kann....immer gern ;) schon mal danke bis hier hin für eure hilfe ;)...... @n1nja: ich probiere das mal
    habe mal auf server und client seite die try catch weggemacht und der fehler kommt dann auf der client seite beim string empfangen... obowhl der server noch nix gesendet hat

    siehe bild
    Bilder
    • Unbenannt2.png

      278,13 kB, 1.680×1.050, 142 mal angesehen