Gestion de socket en vb.net

Soyez le premier à donner votre avis sur cette source.

Snippet vu 18 607 fois - Téléchargée 16 fois

Contenu du snippet

Ce bout de code permet de gérer des sockets automatiquement, en effet on peux créer autant de socket que l'on souhaite et une classe container gère la disponibilité des sockets
Ainsi associé a du multithread on peut parallélisé les sockets en sachant leur statuts

Source / Exemple :


Public Class C_SOCKET
    Public SOCKET_SOCK As System.Net.Sockets.NetworkStream
    Public SOCKET_STATE As String = "Free"
End Class

Public Class C_STREAM
    ' Adresse Ip du serveur au format texte EX "127.0.0.1"
    Private STREAM_IP As String
    ' Port du server
    Private STREAM_PORT As String
    ' Nombre Max de socket
    Private STREAM_MAX As Integer
    ' Tableau de 32 Connexion potentiel
    Private STREAM_UNIT() As C_SOCKET
    'Init des sockets stream plus blocage des socket au dessus de max
    Public Sub New(ByVal IP As String, ByVal PORT As Int32, Optional ByVal MAX As Int32 = 16)
        Array.Resize(Me.STREAM_UNIT, MAX)
        Me.STREAM_IP = IP
        Me.STREAM_PORT = PORT
        For i = 0 To MAX - 1
            Me.STREAM_UNIT(i) = New C_SOCKET
        Next
    End Sub
    'Ferme le socket envoyé en paramatres
    Public Sub STREAM_CLOSE_STREAM(ByVal This_Stream As C_SOCKET)
        This_Stream.SOCKET_SOCK.Close()
        This_Stream.SOCKET_STATE = "Free"
    End Sub
    'Creer un nouveau socket stream si un sock est dispo
    Public Function STREAM_NEW_STREAM()
        For Each Line In Me.STREAM_UNIT
            If (Line.SOCKET_STATE = "Free") Then
                Line.SOCKET_STATE = "Used"
                Line.SOCKET_SOCK = New System.Net.Sockets.TcpClient(Me.STREAM_IP, Me.STREAM_PORT).GetStream
                Return Line
                Exit For
            End If
        Next
        Return False
    End Function
End Class

Conclusion :


Pour l'appeler très simple :
DIM SERVER_STREAM As New C_STREAM("127.0.0.1", 80)
Dim O_SOCKET As C_SOCKET = SERVER_STREAM.STREAM_NEW_STREAM()
Dim socket as New System.Net.Sockets.NetworkStream = O_SOCKET.SOCKET_SOCK

On en veux un deuxieme:
Dim O_SOCKET2 As C_SOCKET = SERVER_STREAM.STREAM_NEW_STREAM()
Dim socket2 as New System.Net.Sockets.NetworkStream = O_SOCKET2.SOCKET_SOCK

Quand on en a fini avec :
SERVER_STREAM.STREAM_CLOSE_STREAM(socket)
SERVER_STREAM.STREAM_CLOSE_STREAM(socket2)

A voir également

Ajouter un commentaire

Commentaires

bendsiham
Messages postés
78
Date d'inscription
mercredi 17 juin 2009
Statut
Membre
Dernière intervention
23 juin 2017
-
merci pour ce code mais je voudrais quelle
sont les classe à importer pour ce code
nonainformatique
Messages postés
1
Date d'inscription
mardi 4 mai 2010
Statut
Membre
Dernière intervention
4 mai 2010
-
trés bieen
hadjinfo10
Messages postés
2
Date d'inscription
lundi 30 avril 2007
Statut
Membre
Dernière intervention
16 juin 2009
-
tre bien 18/20
haloul07
Messages postés
1
Date d'inscription
mardi 23 septembre 2008
Statut
Membre
Dernière intervention
27 février 2009
-
merci
stagmec
Messages postés
3
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
1 juillet 2009
-
oui exactement comment ouvrir une connexion avec sql sever situé dans la machine server

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.