UDPClient - Ne fonctionne pas

predictus Messages postés 7 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 8 juin 2005 - 27 avril 2005 à 22:23
predictus Messages postés 7 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 8 juin 2005 - 29 avril 2005 à 14:56
Bonjour,
Je suis un programmeur en VB6 et je viens de migrer vers VB.NET.
Question:
Dans mon programme VB, j'utilise Winsock. Je suis configurer en UDP Protocol, parce que je dois me connecter avec un automate (PLC).

En VB6 voici mon code (Ce code est fonctionnel):
Configuration de winsock
- Protocole: sckUDPProtocol
- LocalPort: 9600
- RemotePort: 9600
- RemoteHost: 192.168.0.90

Dim SData() As Byte
--------------------------------------------------------------------------
Private Sub cmdSend_Click()
Dim xx As Integer
Dim SendTotal As String
Dim SendResult As String


SendTotal = "800002002000005A00000101820000000001"
For xx = 1 To Len(SendTotal) Step 2
SendResult = SendResult + Chr$(Val("&h" + Mid$(SendTotal, xx, 2)))
Next


Winsock1.SendData SendResult
End Sub
------------------------------------------------------------------------------------------------------------
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim Données As Variant
Dim i%
Dim repon As String
Dim Résult As String


Winsock1.GetData Données, vbString





For i% = 1 To Len(Données)
repon = repon + Right$("00" + Hex$(Asc(Mid$(Données, i%, 1))), 2)
Next i%





Resultat.Caption = Resultat.Caption & repon & vbCr





End Sub

Je veux prendre ce code et le rendre fonctionnel, mais je ne veux pas utilisé le contrôle "Microsoft Winsock control (MSWINSCK.OCX)", parce que je fait une application pour un pocket pc, qui utilise seulement Compact Framework .Net

Voici mon code VB.Net, mais il ne fonctionne pas
Dim udpClient As New UdpClient()
Try
udpClient.Connect("192.168.0.50", 9600)

Dim sendBytes As [Byte]() = Encoding.ASCII.GetBytes("800002002000005A00000101820000000001")

udpClient.Send(sendBytes, sendBytes.Length)

Dim RemoteIpEndPoint As New IPEndPoint(IPAddress.Any, 0)

Dim receiveBytes As [Byte]() = udpClient.Receive(RemoteIpEndPoint)
Dim returnData As String = Encoding.ASCII.GetString(receiveBytes)

Console.WriteLine(("This is the message you received " + _
returnData.ToString()))
Console.WriteLine(("This message was sent from " + _
RemoteIpEndPoint.Address.ToString() + _
" on their port number " + _
RemoteIpEndPoint.Port.ToString()))
udpClient.Close()

Catch e As Exception
Console.WriteLine(e.ToString())
End Try
End Sub

Lorsque j'exécute mon code je plante à la ligne suivante :
Dim receiveBytes As [Byte]() = udpClient.Receive(RemoteIpEndPoint)
Parcontre, je vois les lumières (Send) et (Receive) allumé lorsque je fais la commande (udpClient.Send)

Merci

1 réponse

predictus Messages postés 7 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 8 juin 2005
29 avril 2005 à 14:56
Personne ne sait comment faire ????
0
Rejoignez-nous