CLASSE CLIENT WINSOCK EN .NET

cs_aKheNathOn Messages postés 575 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 23 octobre 2012 - 9 sept. 2004 à 23:57
julienmus Messages postés 51 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 13 février 2012 - 15 déc. 2009 à 12:15
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/6582-classe-client-winsock-en-net

julienmus Messages postés 51 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 13 février 2012
15 déc. 2009 à 12:15
il est un peu vieu ce tuto sa m'etonnerais que tu es une reponse
toutefois si t'en a une j'achete
pour le moment j'utilise un bureau a distance trop de mal avec les socket
PAT9SAB Messages postés 22 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 6 décembre 2009
11 oct. 2009 à 23:48
bonjour peut etre pourais vous m'aider
j'ai fais une appli pour commander une carte relais, maintenant je voudrais la commander d'un autre pc donc je pensais integré un serveur a l'aplication de la carte et faire un client pour l'autre pc mais je ne sais pas si c'est la bonne solution et comment mi prendre (debutant en vb encore plus en reseaux ) merci pour l'aide
cs_Antony Messages postés 83 Date d'inscription mardi 30 juillet 2002 Statut Membre Dernière intervention 13 février 2008
30 juin 2005 à 16:42
Oui j'ai déjà essayé de faire ça, mais voilà le résultat :
"Informations supplémentaires : Une requête d'envoi ou de réception de données n'a pas été autorisée car le socket n'est pas connecté et (lors de l'envoi sur un socket datagramme en utilisant un appel sendto) aucune adresse n'a été fournie".
Alors que j'envoie exactement comme dans ton exemple, j'ai fait du copié coller pratiquement... Mais je ne vois pas...j'ai jamais buté autant sur un problème :(
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
29 juin 2005 à 22:47
Essaie de prefixer tes appels par "Crazyht.Net." au lieu de Net. qui doit en fait router vers System.Net.
cs_Antony Messages postés 83 Date d'inscription mardi 30 juillet 2002 Statut Membre Dernière intervention 13 février 2008
29 juin 2005 à 17:03
Super, voilà exactement le truc que je cherchais !! Sauf que... j'arrive pas à m'en servir :$ lol. Je suis débutant en Vb.net et je pense qu'un truc à dû m'échapper. En fait, quand on ouvre le projet "TestClientTcp" et quand je tape, dans une procédure "net." là j'ai un seul choix "{}client". Mais si je créais mon propre projet, et que j'ajoute en référence la dll "Crazyht.Net.Clients.dll" et que idem je tape "net." là j'ai pleins de choix... du coup mon client ne marche pas (le probleme est le meme pour le serveur évidemment). Je sais que je n'utilise pas la meme version de vb.net mais il ma dit qu'il avait convertir le projet... est ce que quelqu'un peut m'aider ?
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
11 sept. 2004 à 13:23
OK, j'ai corrigé la connection :) Par contre pour le FTP chez moi, il me deconnecte pas de suite :)

Merci pour la note :)

@++
cs_aKheNathOn Messages postés 575 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 23 octobre 2012
10 sept. 2004 à 01:36
Avant t'écrivais juste ça :

Dim lep As IPEndPoint = New IPEndPoint(IPAddress.Any, 0)
Dim rep As IPEndPoint = New IPEndPoint(Dns.Resolve(Ip).AddressList(0).Address, Port)
Connecter(lep, rep)

Et moi je te conséille d'écrire ça :
Try
Dim lep As IPEndPoint = New IPEndPoint(IPAddress.Any, 0)
Dim rep As IPEndPoint = New IPEndPoint(Dns.Resolve(Ip).AddressList(0).Address, Port)
Connecter(lep, rep)
Catch ex As Exception
Dim e As new Crazyht.Net.Clients.ClientTCP.ErreurEventArgs
e.Erreur = ex
RaiseEvent ErreurDetectee(Me, e)
End Try

En mode débug quand je suis pas connécté à internet il plante sur cette fonction : Dim rep As IPEndPoint = New IPEndPoint(Dns.Resolve(Ip).AddressList(0).Address, Port)

en me disant qu'il ne trouve pas le Host. Et puis imagines que le type fais une erreur de frappe, ça générera le même erreur. Mais vu que toi tu la géres pas, ben ta classe plante. Au lieu de ça avec cette structure, j'envoye le message de plantage de krosoft au gars à travers ton evenement erreur, résultat ça plante plus, et à lui de voir ce qu'il veut faire aprés.

T'as un autre pb. Essayes de te connecter au FTP de ftp.microsoft.com sur le port 21. Ce type de connection est batarde car ils ouvrent la connection pour la refermer tout de suite aprés. Ta classe génére un salle erreur, j'ai pas eu le temps de me pencher dessus.

Au passage, tu sais pas si dans le framework y'à une classe FTP ?

Bonne prog et à +, akh
cs_Crazyht Messages postés 1522 Date d'inscription mardi 18 décembre 2001 Statut Membre Dernière intervention 21 août 2010 8
10 sept. 2004 à 01:03
Merci, j'ai corrigé les Return manquants, par contre, j'ai pas compris l'autre problème. Il ne déclenche pas l'événement "ErreurDetectee" dans ce cas ?

@++

Crazyht
cs_aKheNathOn Messages postés 575 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 23 octobre 2012
10 sept. 2004 à 00:14
Ah ben mince alors, t'as oublié pas mal de return :

Public Function RecupDonneesTexte(ByVal EffaceBuff As Boolean) As String
Return RecupDonneesTexte(EffaceBuff, TextEncodingType.TextAscii)
End Function
Public Function RecupDonneesTexte(ByVal Encodeur As TextEncodingType) As String
Return RecupDonneesTexte(True, Encodeur)
End Function
Public Function RecupDonneesTexte() As String
Return RecupDonneesTexte(True, TextEncodingType.TextAscii)
End Function
cs_aKheNathOn Messages postés 575 Date d'inscription dimanche 23 décembre 2001 Statut Membre Dernière intervention 23 octobre 2012
9 sept. 2004 à 23:57
Je ne dirais qu'un mot simple et éfficace. Dommage cenpendant que t'as francisé les fonctions (c pas trop dans l'esprit open source).

C'est franchement bien :). J'ai regardé ta source server... et paréil.

Une petite erreur cependant :

Public Sub Connecter(ByVal Ip As String, ByVal Port As Integer)
Try
Dim lep As IPEndPoint = New IPEndPoint(IPAddress.Any, 0)
Dim rep As IPEndPoint = New IPEndPoint(Dns.Resolve(Ip).AddressList(0).Address, Port)
Connecter(lep, rep)
Catch ex As Exception
Dim e As Crazyht.Net.Clients.ClientTCP.ErreurEventArgs
e.Erreur = ex
RaiseEvent ErreurDetectee(Me, e)
End Try
End Sub

Quand le client n'est pas connecté au net ben le connect génére une erreur qu'il faut absolument que tu traites. Heureusement que ma connection AOL foire tout le temps sinon t'aurais pas entendu parler de ce bug (lol).

Bonne prog et à +, akh
Rejoignez-nous