Accueil > > > AUTOSOCKET, UN CLONE DU CONTRÔLE WINSOCK EN .NET
AUTOSOCKET, UN CLONE DU CONTRÔLE WINSOCK EN .NET
Information sur la source
Description
Dans le Framework .NET, il ya une classe Socket dans l'espace de noms System.Net.Sockets.Socket qui marche bien, mais qui ne lance pas d'événements. Il faut en permanence vérifier l'état du socket, c'est à dire si des données sont disponibles, s'il y a une connexion en attente... AutoSocket est donc une classe qui expose les méthodes les plus utilisées de la classe Socket (Send, Connect, Listen, etc), tout en la simplifiant avec des événements. L'événement Close se produit quand le socket se déconnecte, avec un message de l'erreur s'il y en a une; l'événement DataArrival, semblable à celui du contrôle WinSock qui se produit quand des données arrivent et l'événement Connect qui est explicite. L'utilisation des événements permet de simplifier beaucoup la classe socket: pas besoin de vérifier les connexions en attente et d'appeller Accept(), ni de vérifier les données disponibles, tout est automatique.
Source
- 'Pour utiliser le socket
-
- 'client:
- Dim socket As New AutoSocket()
- 'pour se connecter:
- socket.Connect( New IPEndPoint( IPAddress.Parse("<adresse IP>"), <port> ))
-
- 'server
- Dim socket As New AutoSocket( New IPEndPoint( IPAddress.Parse("<adresse IP locale>"), <port> ) )
- 'pour se mettre en écoute:
- socket.Listen()
-
- 'client/server
-
- 'pour envoyer des données:
- Dim data As Byte()
- socket.Send( data )
-
- 'pour recevoir des données:
- AddHandler socket.DataArrival, socket_DataArrival
-
- Private Sub socket_DataArrival( sender As Object, data As Byte() )
- 'utiliser les données
- End Sub
-
- 'pour voir la progression de l'envoi:
- AddHandler socket.DataDeparture, socket_DataDeparture
- AddHandler socket.SendComplete, socket_SendComplete
-
- Private Sub socket_DataDeparture( sender As Object, e as DataDepartureEventArgs )
- 'envoyé e.CurrentBytesSent sur e.TotalBytes
- End Sub
-
- Private Sub socket_SendComplete( sender As Object, e as EventArgs )
- 'l'envoi est terminé
- End Sub
'Pour utiliser le socket
'client:
Dim socket As New AutoSocket()
'pour se connecter:
socket.Connect( New IPEndPoint( IPAddress.Parse("<adresse IP>"), <port> ))
'server
Dim socket As New AutoSocket( New IPEndPoint( IPAddress.Parse("<adresse IP locale>"), <port> ) )
'pour se mettre en écoute:
socket.Listen()
'client/server
'pour envoyer des données:
Dim data As Byte()
socket.Send( data )
'pour recevoir des données:
AddHandler socket.DataArrival, socket_DataArrival
Private Sub socket_DataArrival( sender As Object, data As Byte() )
'utiliser les données
End Sub
'pour voir la progression de l'envoi:
AddHandler socket.DataDeparture, socket_DataDeparture
AddHandler socket.SendComplete, socket_SendComplete
Private Sub socket_DataDeparture( sender As Object, e as DataDepartureEventArgs )
'envoyé e.CurrentBytesSent sur e.TotalBytes
End Sub
Private Sub socket_SendComplete( sender As Object, e as EventArgs )
'l'envoi est terminé
End Sub
Conclusion
La classe AutoSocket peut être améliorée mais toute la base pour écouter les événements de sockets est présente et testée, il est facile d'ajouter un événement, comme par exemple l'arrivée de données hors-bande ou la fin d'un envoi de données.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
|
Derniers Blogs
MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril SHAREPOINT 15 TECHNICAL PREVIEW MANAGED OBJECT MODEL SOFTWARE DEVELOPMENT KITSHAREPOINT 15 TECHNICAL PREVIEW MANAGED OBJECT MODEL SOFTWARE DEVELOPMENT KIT par Matthew
http://www.microsoft.com/download/en/details.aspx?id=28768&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+MicrosoftDownloadCenter+(Microsoft+Download+Center) ...
Cliquez pour lire la suite de l'article par Matthew
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|