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
Server (Konsole):
Spoiler anzeigen
Hat irgendjemand eine Ahnung woran es liegen könnte?
mietzekotze
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):
VB.NET-Quellcode
- Imports EasyTCPLib.Managed
- Imports System.DirectoryServices
- Public Class Form1
- Private WithEvents cl As New ManagedClient
- Dim nick As String
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- Control.CheckForIllegalCrossThreadCalls = False
- Timer1.Start()
- End Sub
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- cl.Send(TextBox1.Text)
- TextBox1.Clear()
- End Sub
- Private Sub cl_DataReceived(ByVal sender As Object, ByVal e As EasyTCPLib.Managed.DataReceivedArgs) Handles cl.DataReceived
- RichTextBox1.AppendText(e.Value.ToString() + vbNewLine)
- End Sub
- Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
- Dim childEntry As DirectoryEntry
- Dim ParentEntry As New DirectoryEntry
- Try
- ParentEntry.Path = "WinNT:"
- For Each childEntry In ParentEntry.Children
- Dim newNode As New TreeNode(childEntry.Name)
- Select Case childEntry.SchemaClassName
- Case "Domain"
- Dim SubChildEntry As DirectoryEntry
- Dim SubParentEntry As New DirectoryEntry
- SubParentEntry.Path = "WinNT://" & childEntry.Name
- Dim x
- x = childEntry.AuthenticationType()
- For Each SubChildEntry In SubParentEntry.Children
- Try
- Select Case SubChildEntry.SchemaClassName
- Case "Computer"
- ListBox1.Items.Add(System.Net.Dns.Resolve(SubChildEntry.Name).AddressList(0).ToString())
- End Select
- Catch ex As Exception
- Debug.WriteLine(SubChildEntry.Name)
- End Try
- Next
- End Select
- Next
- Catch Ex As Exception
- MessageBox.Show(Ex.ToString)
- Finally
- ParentEntry = Nothing
- End Try
- End Sub
- Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
- cl.Disconnect()
- End Sub
- Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- Label1.Text = "Connected:"
- If cl.IsConnected Then
- Label1.Text = "Connected: TRUE!"
- Else
- Label1.Text = "Connected: FALSE!"
- End If
- End Sub
- Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
- If Not cl.IsConnected Then
- cl.Connect(ListBox1.SelectedItem.ToString(), 8000)
- End If
- End Sub
- End Class
Server (Konsole):
VB.NET-Quellcode
- Imports EasyTCPLib
- Module Module1
- Dim WithEvents server As New Managed.ManagedMultiServer(Net.IPAddress.Any, 8000)
- Sub Main()
- AddHandler server.ClientJoined, AddressOf joint
- AddHandler server.ClientExited, AddressOf jointexit
- server.Start()
- server.BeginAcceptingClients()
- Console.WriteLine("Server ist erfolgreich gestartet.")
- Console.ReadLine()
- End Sub
- Public Sub joint()
- For Each i As Managed.ManagedMultiServer.Connection In server.Clients
- server.Send(i, "Ein neuer Benutzer ist jetz Online")
- Next
- End Sub
- Public Sub jointexit()
- For Each i As Managed.ManagedMultiServer.Connection In server.Clients
- server.Send(i, "Ein neuer Benutzer ist jetz offline")
- Next
- End Sub
- Private Sub server_ClientExited(ByVal sender As Object, ByVal e As EasyTCPLib.Managed.ManagedMultiServer.Connection) Handles server.ClientExited
- End Sub
- Private Sub server_DataReceived(ByVal sender As Object, ByVal e As EasyTCPLib.Managed.DataReceivedArgs, ByVal con As EasyTCPLib.Managed.ManagedMultiServer.Connection) Handles server.DataReceived
- For Each i As Managed.ManagedMultiServer.Connection In server.Clients
- server.Send(i, e.Value)
- Console.WriteLine(e.Value)
- Next
- End Sub
- End Module
Hat irgendjemand eine Ahnung woran es liegen könnte?
mietzekotze