vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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 - Fortgeschrittene
Re: Quellcode Teil7/8 
Autor: dj.tommy
Datum: 15.06.17 13:15

    Private Sub ChangeState(ByVal new_state As WinsockStates)
        _Status = new_state
    End Sub
 
    ''' <summary>
    '''  gibt den Zustand der Socket-Verbindung zurück
    ''' </summary>
    <Browsable(False)> Public ReadOnly Property Status() As WinsockStates
        Get
            Return _Status
        End Get
    End Property
 
    ''' <summary>
    '''  Tritt auf, wenn ein Verbindung geschlossen wird.
    ''' </summary>
    Public Sub Close()
        If _Protokoll = WinsockProtocol.TCP Then
            Try
                Select Case Status
                    Case WinsockStates.Listening
                        ChangeState(WinsockStates.Closing)
                        _SocketListTCP.Close()
                    Case WinsockStates.Connected, WinsockStates.Connecting, _
                      WinsockStates.ConnectionPending, _
                      WinsockStates.HostResolved, WinsockStates.Open, _
                      WinsockStates.ResolvingHost
                        ChangeState(WinsockStates.Closing)
                        _ClientServerTCP.Close()
                    Case WinsockStates.Closed
                        'do nothing
                End Select
                ChangeState(WinsockStates.Closed)
            Catch ex As Exception
                ChangeState(WinsockStates.Error)
                CrossThread.RunGui(AddressOf DoHandleError, ex.HResult, _
                  ex.Message)
            End Try
        ElseIf _Protokoll = WinsockProtocol.UDP Then
            Beep()
        End If
 
    End Sub
 
#End Region
 
End Class
 
#Region " WinsockStates "
 
Public Enum WinsockStates
    Closed = 0
    Open = 1
    Listening = 2
    ConnectionPending = 3
    ResolvingHost = 4
    HostResolved = 5
    Connecting = 6
    Connected = 7
    Closing = 8
    [Error] = 9
    'Listening = 1
    'Connected = 2
End Enum
 
Public Enum WinsockProtocol
    ''' <summary>
    ''' ist eine sicher Verbindung
    ''' </summary>
    TCP = 0
    ''' <summary>
    ''' ist ein unsicher Verbindung
    ''' </summary>
    UDP = 1
End Enum
 
#End Region
 
Public Class UdpReceiveState
 
    ''' <summary>
    ''' The incoming socket information - allows UDP to determine the sender.
    ''' </summary>
    Public SendingSocket As Object
    ''' <summary>
    ''' The EndPoint on which the data was received (server side).
    ''' </summary>
    Public ReceivingEndpoint As EndPoint
 
End Class
 
#Region "Um keine Threadübergreifend zu verursachen"
 
Public Class CrossThread
 
    Public Shared Sub RunAsync(Of T1, T2, T3)(ByVal Action As Action(Of T1, T2, _
      T3), ByVal Arg1 As T1, ByVal Arg2 As T2, ByVal Arg3 As T3)
        ' Aufruf von Action.EndInvoke() gewährleisten, indem er als 
        '  Callback-Argument mitgegeben wird
        Action.BeginInvoke(Arg1, Arg2, Arg3, AddressOf Action.EndInvoke, _
          Nothing)
    End Sub
 
    Public Shared Sub RunAsync(Of T1, T2)(ByVal Action As Action(Of T1, T2), _
      ByVal Arg1 As T1, ByVal Arg2 As T2)
        Action.BeginInvoke(Arg1, Arg2, AddressOf Action.EndInvoke, Nothing)
    End Sub
 
    Public Shared Sub RunAsync(Of T1)(ByVal Action As Action(Of T1), ByVal Arg1 _
      As T1)
        Action.BeginInvoke(Arg1, AddressOf Action.EndInvoke, Nothing)
    End Sub
 
    Public Shared Sub RunAsync(ByVal Action As Action)
        Action.BeginInvoke(AddressOf Action.EndInvoke, Nothing)
    End Sub
 
    Private Shared Function GuiCrossInvoke(ByVal Action As [Delegate], ByVal _
      ParamArray Args() As Object) As Boolean
 
        If Application.OpenForms.Count = 0 Then
            ' Wenn kein Form mehr da ist, so tun, als ob das Invoking 
            '  ausgeführt wäre
            Return True
        End If
        If Application.OpenForms(0).InvokeRequired Then
            Application.OpenForms(0).BeginInvoke(Action, Args)
            Return True
        End If
        Return False
    End Function
 
    Public Shared Sub RunGui(Of T1, T2, T3)(ByVal Action As Action(Of T1, T2, _
      T3), ByVal Arg1 As T1, ByVal Arg2 As T2, ByVal Arg3 As T3)
        ' Falls Invoking nicht erforderlich, die Action direkt ausführen
        If Not GuiCrossInvoke(Action, Arg1, Arg2, Arg3) Then
            Action(Arg1, Arg2, Arg3)
        End If
    End Sub
 
    Public Shared Sub RunGui(Of T1, T2)(ByVal Action As Action(Of T1, T2), _
      ByVal Arg1 As T1, ByVal Arg2 As T2)
        If Not GuiCrossInvoke(Action, Arg1, Arg2) Then Action(Arg1, Arg2)
    End Sub
 
    Public Shared Sub RunGui(Of T1)(ByVal Action As Action(Of T1), ByVal Arg1 _
      As T1)
        If Not GuiCrossInvoke(Action, Arg1) Then Action(Arg1)
    End Sub
 
    Public Shared Sub RunGui(ByVal Action As Action)
        If Not GuiCrossInvoke(Action) Then Action()
    End Sub
 
End Class
 
#End Region
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Mit System.Net.Sockets über Internet verbinden?2.283dj.tommy14.06.17 18:59
Re: Mit System.Net.Sockets über Internet verbinden?1.456sv0001014.06.17 20:03
Re: Mit System.Net.Sockets über Internet verbinden?1.388dj.tommy14.06.17 20:05
Re: Mit System.Net.Sockets über Internet verbinden?1.388sv0001014.06.17 20:36
Re: Quellcode Teil1/81.394dj.tommy15.06.17 13:07
Re: Quellcode Teil2/81.454dj.tommy15.06.17 13:08
Re: Quellcode Teil3/81.324dj.tommy15.06.17 13:09
Re: Quellcode Teil4/81.223dj.tommy15.06.17 13:10
Re: Quellcode Teil5/81.317dj.tommy15.06.17 13:11
Re: Quellcode Teil6/81.225dj.tommy15.06.17 13:12
Re: Quellcode Teil7/81.360dj.tommy15.06.17 13:15
Re: Quellcode Teil8/81.274dj.tommy15.06.17 13:16
Re: Quellcode Teil8/81.370sv0001015.06.17 14:44
Re: Quellcode Teil8/81.243dj.tommy16.06.17 16:18
Re: Quellcode Teil8/81.316sv0001016.06.17 21:30
Re: Quellcode Teil8/81.390dj.tommy18.06.17 18:03
Re: Sockets Empfänger1.478dj.tommy02.07.17 12:14
Re: Sockets Empfänger1.513sv0001002.07.17 17:52
Re: Sockets Empfänger1.283dj.tommy02.07.17 19:02
Re: Sockets Empfänger1.303sv0001003.07.17 05:42
Re: Sockets Empfänger1.314dj.tommy03.07.17 10:32
Re: Sockets Empfänger1.250sv0001003.07.17 17:35
Re: Sockets Empfänger1.349dj.tommy03.07.17 19:35

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