vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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

VB.NET - Ein- und Umsteiger
Die Server-Klasse 
Autor: Manfred X
Datum: 02.07.15 06:29

Imports System
Imports System.Net
Imports System.Net.Sockets
Imports System.Text
 
Class SynchronousSocketListenerServer
    Implements IDisposable
 
    Public Event Received(ByVal msg As String)
    Public Property data As String = Nothing
 
    Private handler As Socket
    Private Listener As Socket
    Private IsListening As Boolean
 
    Public Const endchars As String = "<EOF>"
    Public Const MaxMessageLength As Integer = 2048
 
 
    Public Sub Listen()
 
        ' Data buffer for incoming data.
        Dim bytes() As Byte
 
        ' Establish the local endpoint for the socket.
        Dim ipHostInfo As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
        Dim ipAddress As IPAddress = ipHostInfo.AddressList(2)
        Dim localEndPoint As New IPEndPoint(ipAddress, 11000)
 
        Try
            ' Create a TCP/IP socket.
            Listener = New Socket(AddressFamily.InterNetwork, _
                SocketType.Stream, ProtocolType.Tcp)
 
            ' Bind the socket to the local endpoint and 
            ' listen for incoming connections.
            Listener.Bind(localEndPoint)
            Listener.Listen(10)
            IsListening = True
        Catch ex As Exception
            MessageBox.Show(ex.Message)
            Exit Sub
        End Try
 
        ' Start listening for connections.
        While IsListening
            ' Program is suspended while waiting for an incoming connection.
            Try
                handler = Listener.Accept
                data = Nothing
                ' An incoming connection needs to be processed.
                While True
                    bytes = New Byte(MaxMessageLength) {}
                    Dim bytesRec As Integer = handler.Receive(bytes)
                    data += Encoding.ASCII.GetString(bytes, 0, bytesRec)
                    If data.IndexOf(endchars) > -1 Then
                        Exit While
                    End If
                End While
 
                data = data.Substring(0, data.Length - endchars.Length)
                RaiseEvent Received(data)
 
                ' Echo the data back to the client.
                Dim msg As Byte() = Encoding.ASCII.GetBytes(data)
 
                handler.Send(msg)
                handler.Shutdown(SocketShutdown.Both)
                handler.Close()
            Catch
                'wegen Beendigung beim Dispose
            End Try
        End While
    End Sub
 
 
#Region "IDisposable Support"
    Private disposedValue As Boolean
 
    Protected Overridable Sub Dispose(disposing As Boolean)
        If Not Me.disposedValue Then
            If disposing Then
                IsListening = False
                If Listener IsNot Nothing Then
                    If Listener.Connected Then Listener.Disconnect(False)
                End If
                Listener.Dispose()
            End If
        End If
        Me.disposedValue = True
    End Sub
 
    Public Sub Dispose() Implements IDisposable.Dispose
        Dispose(True)
        GC.SuppressFinalize(Me)
    End Sub
#End Region
 
End Class


Beitrag wurde zuletzt am 02.07.15 um 06:32:28 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
TCP Socket Server1.944Steini.m29.06.15 22:43
Re: TCP Socket Server1.105Blackbox01.07.15 21:23
Re: TCP Socket Server1.095Steini.m01.07.15 22:48
Beispiel-Formular1.163Manfred X02.07.15 06:24
Re: Beispiel-Formular1.017Steini.m04.07.15 16:38
Die Client-Klasse1.131Manfred X02.07.15 06:27
Die Server-Klasse1.160Manfred X02.07.15 06:29
Re: Die Server-Klasse1.115Steini.m02.07.15 09:05
Re: Die Server-Klasse1.122Manfred X02.07.15 09:17
Re: Die Server-Klasse1.073Steini.m02.07.15 10:46

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-2024 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