Reconnect-Problem mit EasyTCPLib

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Slayers.

    Reconnect-Problem mit EasyTCPLib

    Hallo Leute,

    ich habe folgendes Problem:
    Ich möchte ein Programm coden, welches zuerst alle Rechner im Netzwerk auflistet und dann via TCP Text schickt. Auf den anderen Rechnern soll dann auch mein Server laufen. Mein momentanes Problem ist folgendes:

    Ich habe mich mit dme Client auf dem Server eingeloggt und habe Text an ihn geschickt. Hat soweit Funktioniert. Dann habe ich mich disconnected und wollte mich wieder einloggen, dann habe ich aber die Fehlermeldung bekommen, dass das Programm nicht auf die IP-Adresse connecten konnte.
    Die IP war dieselbe wie vorher. Wenn ich den Client neustarte, kann ich wieder connecten, aber wieder nur einmal.

    Hier mal die Sources:

    Client (Windowsform):

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports EasyTCPLib.Managed
    2. Imports System.DirectoryServices
    3. Public Class Form1
    4. Private WithEvents cl As New ManagedClient
    5. Dim nick As String
    6. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. Control.CheckForIllegalCrossThreadCalls = False
    8. Timer1.Start()
    9. End Sub
    10. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    11. cl.Send(TextBox1.Text)
    12. TextBox1.Clear()
    13. End Sub
    14. Private Sub cl_DataReceived(ByVal sender As Object, ByVal e As EasyTCPLib.Managed.DataReceivedArgs) Handles cl.DataReceived
    15. RichTextBox1.AppendText(e.Value.ToString() + vbNewLine)
    16. End Sub
    17. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    18. Dim childEntry As DirectoryEntry
    19. Dim ParentEntry As New DirectoryEntry
    20. Try
    21. ParentEntry.Path = "WinNT:"
    22. For Each childEntry In ParentEntry.Children
    23. Dim newNode As New TreeNode(childEntry.Name)
    24. Select Case childEntry.SchemaClassName
    25. Case "Domain"
    26. Dim SubChildEntry As DirectoryEntry
    27. Dim SubParentEntry As New DirectoryEntry
    28. SubParentEntry.Path = "WinNT://" & childEntry.Name
    29. Dim x
    30. x = childEntry.AuthenticationType()
    31. For Each SubChildEntry In SubParentEntry.Children
    32. Try
    33. Select Case SubChildEntry.SchemaClassName
    34. Case "Computer"
    35. ListBox1.Items.Add(System.Net.Dns.Resolve(SubChildEntry.Name).AddressList(0).ToString())
    36. End Select
    37. Catch ex As Exception
    38. Debug.WriteLine(SubChildEntry.Name)
    39. End Try
    40. Next
    41. End Select
    42. Next
    43. Catch Ex As Exception
    44. MessageBox.Show(Ex.ToString)
    45. Finally
    46. ParentEntry = Nothing
    47. End Try
    48. End Sub
    49. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    50. cl.Disconnect()
    51. End Sub
    52. Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    53. Label1.Text = "Connected:"
    54. If cl.IsConnected Then
    55. Label1.Text = "Connected: TRUE!"
    56. Else
    57. Label1.Text = "Connected: FALSE!"
    58. End If
    59. End Sub
    60. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    61. If Not cl.IsConnected Then
    62. cl.Connect(ListBox1.SelectedItem.ToString(), 8000)
    63. End If
    64. End Sub
    65. End Class



    Server (Konsole):

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Imports EasyTCPLib
    2. Module Module1
    3. Dim WithEvents server As New Managed.ManagedMultiServer(Net.IPAddress.Any, 8000)
    4. Sub Main()
    5. AddHandler server.ClientJoined, AddressOf joint
    6. AddHandler server.ClientExited, AddressOf jointexit
    7. server.Start()
    8. server.BeginAcceptingClients()
    9. Console.WriteLine("Server ist erfolgreich gestartet.")
    10. Console.ReadLine()
    11. End Sub
    12. Public Sub joint()
    13. For Each i As Managed.ManagedMultiServer.Connection In server.Clients
    14. server.Send(i, "Ein neuer Benutzer ist jetz Online")
    15. Next
    16. End Sub
    17. Public Sub jointexit()
    18. For Each i As Managed.ManagedMultiServer.Connection In server.Clients
    19. server.Send(i, "Ein neuer Benutzer ist jetz offline")
    20. Next
    21. End Sub
    22. Private Sub server_ClientExited(ByVal sender As Object, ByVal e As EasyTCPLib.Managed.ManagedMultiServer.Connection) Handles server.ClientExited
    23. End Sub
    24. Private Sub server_DataReceived(ByVal sender As Object, ByVal e As EasyTCPLib.Managed.DataReceivedArgs, ByVal con As EasyTCPLib.Managed.ManagedMultiServer.Connection) Handles server.DataReceived
    25. For Each i As Managed.ManagedMultiServer.Connection In server.Clients
    26. server.Send(i, e.Value)
    27. Console.WriteLine(e.Value)
    28. Next
    29. End Sub
    30. End Module




    Hat irgendjemand eine Ahnung woran es liegen könnte?

    mietzekotze