Envoie d'une chaine de caractère

cs_liloo84 Messages postés 2 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 25 janvier 2012 - 24 janv. 2012 à 12:09
NHenry Messages postés 15025 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 - 25 janv. 2012 à 18:32
Bonjour à tous,

J'aimerai utiliser les sockets pour envoyer des données entre un code c et un code vb.net. Pour le C il compile sans problème, j'utilise un send pour envoyer une chaine de caractère, mais coté vb.net pour la récupération de la chaine de caractère je bloque un peu (première utilisation de vb.net).
Voila l'erreur que mon code vb.net me retourne:
Aucune connexion n’a pu être établie car l’ordinateur cible l’a expressément refusée 127.0.0.1:8888
(ligne Client.Connect("127.0.0.1", 8888))
Sachant que dans mon code c j'utilise le même port 8888, et je veux faire communiquer deux application en locale.

voila mon code, si quelqu'un peu me corriger svp:
Imports System.Net.Sockets
Public Class Form1

    Dim buffer As [Byte]()
    Private Client As New System.Net.Sockets.Socket(Net.Sockets.AddressFamily.InterNetwork, Net.Sockets.SocketType.Stream, Net.Sockets.ProtocolType.IP) 
    Private Sub BTNstartconnexion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Click
    Client.Connect("127.0.0.1", 8888)
    End Sub

    Private Sub connexion_acceptee(ByVal ar As System.IAsyncResult)

        MsgBox("client : " & Client.Connected)

    End Sub
    Public Sub ReceiveMessage()
        If Not (Me.Client Is Nothing) AndAlso Me.Client.Connected Then
            Dim Octetsrecus As Int32 = Me.Client.Receive(buffer, 0, buffer.Length, SocketFlags.None)
            MsgBox("result:", Octetsrecus)

        End If
    End Sub

End Class


Merci d'avance

3 réponses

NHenry Messages postés 15025 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
24 janv. 2012 à 19:22
Bonjour,

En .NET, tu peux aussi utiliser System.Net.Sockets.TcpClient, ce sera plus simple à manipuler, je pense.

J'en conclu que ton code C est donc le serveur.
Sinon, en TCP, il te faut obligatoirement un serveur pour avoir une connexion.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]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
---
0
cs_liloo84 Messages postés 2 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 25 janvier 2012
25 janv. 2012 à 11:42
Bonjour NHenry et merci pour ta réponse,

Effectivement mon code C est le serveur, qui attend qu'un client se connecte, et j'envoie une chaine de caractère par exemple "hello".
Est ce que tu sais pourquoi j'ai ce problème, avec System.Net.Sockets?

Merci d'avance.
0
NHenry Messages postés 15025 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 26 novembre 2022 157
25 janv. 2012 à 18:32
Bonjour,

Le message d'erreur indique que la demande de connexion a été refusée, donc, il faut voir si tu as bien configuré ton appli .NET pour accéder à ton code C et dans ton code C que tu acceptes bien les connexions.
Tu peux tester avec Telnet par exemple pour la connexion.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]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
---
0