vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Sockets > Fenster öffen bei Dateneingang 
Autor: IsoLizer
Datum: 26.10.05 03:56

Hi!

Ich habe mir eine Socket-Listener-Klasse geschrieben, die auch gut funktioniert.
Jedoch bin ich dabei auf ein Problem gestoßen.

Ich verwende asynchronen Datenempfang.
Ich möchte, dass sich ein Fenster öffnet sobald der Socket Daten empfängt, welches diese in eine Zeichenkette umgewandelt anzeigt.


Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.IO
Imports System.Threading
Imports System.Text.Encoding
 
Public Class Network
    Public Class Server
 
        Public Sub StartListener()
            Dim ListenerThread As New Thread(AddressOf StartListening)
            ListenerThread.IsBackground = True
            ListenerThread.Start()
        End Sub
 
        Public allDone As New ManualResetEvent(False)
 
        Private Sub StartListening()
            Try
                Dim server As New Socket(AddressFamily.InterNetwork, _
                  SocketType.Stream, ProtocolType.Tcp)
                server.Bind(New IPEndPoint(IPAddress.Parse("127.0.0.1"), 5555))
                server.Listen(5)
 
                While True
                    allDone.Reset()
                    server.BeginAccept(AddressOf AcceptCallBack, server)
                    allDone.WaitOne()
                End While
            Catch e As Exception
                MessageBox.Show(e.Message)
            End Try
        End Sub
 
        Private Sub AcceptCallBack(ByVal ar As IAsyncResult)
            Dim Listener As Socket = CType(ar.AsyncState, Socket)
            Dim handler As Socket = Listener.EndAccept(ar)
 
            Dim state As New StateObject
            state.workSocket = handler
            Array.Clear(state.buffer, 0, state.buffersize)
            handler.BeginReceive(state.buffer, 0, StateObject.buffersize, _
              SocketFlags.None, AddressOf ReceiveCallBack, state)
 
        End Sub
 
        Private Sub ReceiveCallBack(ByVal ar As IAsyncResult)
            Dim state As StateObject = CType(ar.AsyncState, StateObject)
            Dim handler As Socket = state.workSocket
            Dim content As String = String.Empty
            Dim bytesRead% = handler.EndReceive(ar)
 
            content = ASCII.GetString(state.buffer)
 
            If bytesRead > 0 Then
                handler.BeginReceive(state.buffer, 0, state.buffersize, _
                  SocketFlags.None, AddressOf ReceiveCallBack, state)
                Dim msgwin As New MsgWindow(content)
                msgwin.Show()
            End If
 
            Array.Clear(state.buffer, 0, state.buffersize)
        End Sub
    End Class
 
    Public Class StateObject
        Public workSocket As Socket = Nothing
        Public Const buffersize As Integer = 1023
        Public buffer(buffersize) As Byte
    End Class
End Class
Bei diesem Code öffnet sich zwar das Fenster bei Datenempfang, es reagiert aber nicht und zeigt nur weißen Hintergrund im Client-Bereich an, sonst nichts ...
Man achte auf die Methode ReceiveCallBack...

Habt ihr eine Idee, wie man das Fenster zum Reagieren bringen könnte?
Ich hab selbst auch schon ein paar Sachen versucht umzuändern.
Hat aber alles nicht geholfen...

Ich bedanke mich für Hilfe!
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Sockets > Fenster öffen bei Dateneingang1.693IsoLizer26.10.05 03:56
Re: Sockets > Fenster öffen bei Dateneingang917ModeratorFZelle26.10.05 09:03
Re: Sockets > Fenster öffen bei Dateneingang919IsoLizer26.10.05 18:41
Re: Sockets > Fenster öffen bei Dateneingang1.218ModeratorDaveS26.10.05 09:13
Re: Sockets > Fenster öffen bei Dateneingang913IsoLizer26.10.05 18:35
Re: Sockets > Fenster öffen bei Dateneingang908IsoLizer26.10.05 20:17
Re: Sockets > Fenster öffen bei Dateneingang941ModeratorDaveS27.10.05 08:14
Re: Sockets > Fenster öffen bei Dateneingang906IsoLizer28.10.05 01:02

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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