dikan
Messages postés1Date d'inscriptionmercredi 9 mai 2012StatutMembreDernière intervention 9 mai 2012
-
9 mai 2012 à 15:51
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024
-
25 mai 2012 à 20:32
Bonjour,
nous sommes étudiant en électronique médicale. Dans le cadre d'un projet en windows forms sous visual studio, nous devons réaliser l'interconnexion entre un pc et un module se chargeant d'envoi de données. les données sont en hexadécimal et envoyé sur un port déterminé de notre pc( port et IP prédétermine)
ce code hexadécimal arrive aux alentours de toutes les 3 secondes, doit être traduit en ASCII et ne doit pas bloquer notre programme dans son déroulement.
Explication :
notre Programme est sans cesse à l'écoute du port, nous voudrions qu'il n'aille chercher les infos que lorsqu'elles arrivent sur le port et ainsi pouvoir utiliser le temps libre pour traiter des données ou faire autre chose
Public Class Form1
Dim a As String = ""
Dim b As String = ""
Public WithEvents s As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
Public WithEvents ipAdressServer As IPAddress = IPAddress.Parse(Dns.GetHostAddresses(Dns.GetHostName())(0).ToString)
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Visible = True
Timer1.Interval = 3000
Timer1.Start()
s.Bind(New IPEndPoint(ipAdressServer, 65501))
s.Listen(1)
Dim s2 As Socket = s.Accept()
Dim ret As Integer
Dim rbuf(256) As Byte
Dim chaine As New System.Text.StringBuilder
While (1)
ret = s2.Receive(rbuf, 0, 256, SocketFlags.None)
chaine.Append(System.Text.Encoding.ASCII.GetString(rbuf, 0, ret))
TextBox1.AppendText(System.Text.Encoding.ASCII.GetString(rbuf, 0, ret) + "" + b)
a = (System.Text.Encoding.ASCII.GetString(rbuf, 0, ret))
b = Len(a)
End While
End Sub
Private Sub Timer1_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'TextBox1.AppendText(a & vbCrLf & b)
'b = TextBox1.Text
End Sub
End Class
Devrions nous utiliser un équivalent a dataarrival ou autre technique si possible exemple concret et détaille pour les pauvres newbie que nous sommes
NHenry
Messages postés15112Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention13 avril 2024159 25 mai 2012 à 20:32
Bonjour,
Regardes du coté des Threads et du BackGroundWorker.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Mon site