TCP Client kann keine Verbindung zum Server aufbauen!

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von DeError.

    TCP Client kann keine Verbindung zum Server aufbauen!

    TCP Client kann keine Verbindung zum Server aufbauen!


    Also, folgendes Problem X( :


    Edit: Port "8000" ist schon freigegeben!

    1. Mein Freund startet den Server
    2. Ich versuche auf seine IP zu Verbinden (wieistmeineip.de)
    3. Der Client bringt die Meldung "Konnte nicht zum Server verbinden"

    warum?

    Code Server:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Net.Sockets
    2. Imports System.IO
    3. Imports System.Net
    4. Module Module1
    5. Private server As TcpListener
    6. Private client As New TcpClient
    7. Private ipendpoint As IPEndPoint = New IPEndPoint(IPAddress.Any, 8000) ' eingestellt ist port 8000. dieser muss ggf. freigegeben sein!
    8. Private list As New List(Of Connection)
    9. Private Structure Connection
    10. Dim stream As NetworkStream
    11. Dim streamw As StreamWriter
    12. Dim streamr As StreamReader
    13. Dim nick As String ' natürlich optional, aber für die identifikation des clients empfehlenswert.
    14. End Structure
    15. Sub Main()
    16. Console.Title = "GAPLG v1.0 | Get and play lan games! | Server"
    17. Console.WriteLine("Wichtig, der Port 8000 muss freigegeben sein!")
    18. Console.WriteLine("")
    19. Console.WriteLine("Server ist an!")
    20. Console.WriteLine("")
    21. server = New TcpListener(ipendpoint)
    22. server.Start()
    23. While True ' wir warten auf eine neue verbindung...
    24. client = server.AcceptTcpClient
    25. Dim c As New Connection ' und erstellen für die neue verbindung eine neue connection...
    26. c.stream = client.GetStream
    27. c.streamr = New StreamReader(c.stream)
    28. c.streamw = New StreamWriter(c.stream)
    29. c.nick = c.streamr.ReadLine ' falls das mit dem nick nicht gewünscht, auch diese zeile entfernen.
    30. list.Add(c) ' und fügen sie der liste der clients hinzu.
    31. Console.WriteLine(c.nick & " ist beigetreten!")
    32. ' falls alle anderen das auch lesen sollen können, an alle clients weiterleiten.
    33. Dim t As New Threading.Thread(AddressOf ListenToConnection)
    34. t.Start(c)
    35. End While
    36. End Sub
    37. Private Sub ListenToConnection(ByVal con As Connection)
    38. Do
    39. Try
    40. Dim tmp As String = con.streamr.ReadLine ' warten, bis etwas empfangen wird...
    41. Console.WriteLine(con.nick & ": " & tmp)
    42. For Each c As Connection In list ' an alle clients weitersenden.
    43. Try
    44. c.streamw.WriteLine(con.nick & ": " & tmp)
    45. c.streamw.Flush()
    46. Catch
    47. End Try
    48. Next
    49. Catch ' die aktuelle überwachte verbindung hat sich wohl verabschiedet.
    50. list.Remove(con)
    51. Console.WriteLine(con.nick & " hat verlassen!")
    52. Exit Do
    53. End Try
    54. Loop
    55. End Sub
    56. End Module



    Code Client:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports System.Net.Sockets
    2. Imports System.IO
    3. Public Class Form1
    4. Private stream As NetworkStream
    5. Private streamw As StreamWriter
    6. Private streamr As StreamReader
    7. Private client As New TcpClient
    8. Private t As New Threading.Thread(AddressOf Listen)
    9. Private Delegate Sub DAddItem(ByVal s As String)
    10. Private nick As String = "unknown"
    11. Private Sub AddItem(ByVal s As String)
    12. ListBox1.Items.Add(s)
    13. End Sub
    14. Private Sub Form1_Shown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shown
    15. Try
    16. client.Connect(ip.text, 8000) ' hier die ip des servers eintragen.
    17. ' da dieser beim testen wohl lokal läuft, hier die loopback-ip 127.0.0.1.
    18. If client.Connected Then
    19. stream = client.GetStream
    20. streamw = New StreamWriter(stream)
    21. streamr = New StreamReader(stream)
    22. streamw.WriteLine(nick) ' das ist optional.
    23. streamw.Flush()
    24. t.Start()
    25. Else
    26. MessageBox.Show("Verbindung zum Server nicht möglich!")
    27. Application.Exit()
    28. End If
    29. Catch ex As Exception
    30. MessageBox.Show("Verbindung zum Server nicht möglich!")
    31. Application.Exit()
    32. End Try
    33. End Sub
    34. Private Sub Listen()
    35. While client.Connected
    36. Try
    37. Me.Invoke(New DAddItem(AddressOf AddItem), streamr.ReadLine)
    38. Catch
    39. MessageBox.Show("Verbindung zum Server nicht möglich!")
    40. Application.Exit()
    41. End Try
    42. End While
    43. End Sub
    44. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    45. streamw.WriteLine(TextBox1.Text)
    46. streamw.Flush()
    47. TextBox1.Clear()
    48. End Sub
    49. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    50. ip.Hide()
    51. nick = InputBox("Nickname: ", "Name nehmen!", "unknown")
    52. End Sub
    53. End Class



    Bitte ist wichtig!

    Wollen Lan-Party mit Freunden machen und Hamachi geht bei einem net ;( !!!!

    Edit by der_Kurt:
    * Thema verschoben *

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „der_Kurt“ ()