| |

VB.NET - FortgeschritteneTcpClients und keine Antwort | |  | Autor: realkizZ | Datum: 04.09.07 03:09 |
| Hi,
es ist schon spät, aber da ich morgen frei habe, verbringe ich etwas Zeit mit einem neuen Projekt. Dabei ist es jedoch zu erheblichen Problemen gekommen, bei denen ihr mir hoffentlich helfen könnt.
Ich habe zwei Klassen, einen Server und einen Client:
Server
Public Class Server
Private Clients As New Collection(Of TcpClient)
Private ClientCount As Integer = 10
Private Listener As TcpListener
Private ThreadSend As Thread
Private ThreadHandshake As Thread
Public Sub InitClass()
Listener = New TcpListener(IPAddress.Parse("127.0.0.1"), 8000)
Listener.Start()
ThreadHandshake = New Thread(AddressOf Thread_ListenForRequests)
ThreadHandshake.Start()
End Sub
Private Sub Thread_ListenForRequests()
While True
If Listener.Pending Then
If Clients.Count < ClientCount + 1 Then
Clients.Add(Listener.AcceptTcpClient())
End If
End If
End While
End Sub
Public Sub SendBroadcast()
ThreadSend = New Thread(AddressOf Thread_SendBroadcast)
ThreadSend.Start()
End Sub
Private Sub Thread_SendBroadcast()
Dim DataBuffer As Byte()
Dim Stream As NetworkStream
For Each CurrentClient As TcpClient In Clients
If CurrentClient.Connected Then
Stream = CurrentClient.GetStream
DataBuffer = System.Text.Encoding.ASCII.GetBytes("welcome")
Stream.Write(DataBuffer, 0, DataBuffer.Length)
Else
'remove from collection
End If
Next
End Sub
End Class Client
Public Class Client
Public Event DataReceived(ByVal Data As Byte())
Private Client As TcpClient
Private Stream As NetworkStream
Private ThreadReceive As Thread
Public Sub InitClass()
Client = New TcpClient("localhost", 8000)
Stream = Client.GetStream()
ThreadReceive = New Thread(AddressOf Thread_ReceiveData)
ThreadReceive.Start()
End Sub
Private Sub Thread_ReceiveData()
Dim buffer(Client.ReceiveBufferSize) As Byte
While Client.Connected
If Stream.DataAvailable Then
Stream.Read(buffer, 0, CInt(Client.ReceiveBufferSize))
RaiseEvent DataReceived(buffer)
End If
End While
End Sub
End Class Ich beginne das Programm dann damit, diese Klassen jeweils einmal
zu instanzieren, beim Server zuerst InitClass, dann SendBroadcast
und beim Client nur InitClass aufzurufen. Das Problem ist, dass einfach
nichts passiert - keine Exception, Rückmeldung oder sonstiges.
Das ganze ist erst eine Art Prototyp, um das Prinzip zu verstehen, da ich
vorher nur mit WinSock unter VB6 gearbeitet habe und durch die Events
die Programmarchitektur einfacher war.
Über Hilfe würde ich mich wie immer freuen.
Danke im vorraus. MfG kizZ |  |
 | Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
  |
|
Neu! sevPopUp 2.0 
Dynamische Kontextmenüs!
Erstellen Sie mit nur wenigen Zeilen Code Kontextmenüs dynamisch zur Laufzeit. Vordefinierte Styles (XP, Office, OfficeXP, Vista oder Windows 8) erleichtern die Anpassung an die eigenen Anwendung... Weitere InfosTipp des Monats Oktober 2025 Matthias KozlowskiUmlaute konvertierenErsetzt die Umlaute in einer Zeichenkette durch die entsprechenden Doppelbuchstaben (aus ä wird ae, usw.) TOP Entwickler-Paket 
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1866.50 EUR...
Jetzt nur 979,00 EURWeitere Infos
|
|
|
Copyright ©2000-2025 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|