TUTORIAL WINSOCK TCP/IP SERVEUR CLIENT , MULTI CLIENTS ETC , CE KI FO SAVOIR QUO

cs_jeanyves Messages postés 57 Date d'inscription samedi 30 mars 2002 Statut Membre Dernière intervention 24 mars 2003 - 28 sept. 2002 à 06:35
cs_FuSe Messages postés 18 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 10 juillet 2003 - 5 juil. 2003 à 20:19
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/4644-tutorial-winsock-tcp-ip-serveur-client-multi-clients-etc-ce-ki-fo-savoir-quoi

cs_jeanyves Messages postés 57 Date d'inscription samedi 30 mars 2002 Statut Membre Dernière intervention 24 mars 2003
28 sept. 2002 à 06:35
C'est vrai que c'est complexe mais il faut commencer par la base.... bravo d'avoir pensé aux débutants.
Toneivitch Messages postés 5 Date d'inscription mercredi 11 septembre 2002 Statut Membre Dernière intervention 19 octobre 2002
28 sept. 2002 à 09:15
Oui c sympa de penser aux newbies, je trouve ca tres courageux de passer du temps a expliquer a des inconnus des trucs qui leurs rendent services
Merci beaucoup
cs_Clem Messages postés 282 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 12 février 2007
28 sept. 2002 à 11:37
Oui, c'est une bonne idée de penser aux newbies, moi même, j'ai pris le winsock avec une source dont je ne comprenais rien, et qui est pplus était sans commentaires, bref, la galère pour les débutants.
Par contre, j'aimerais bien savoir comment l'UDP fonctionne, je sais que je peux paraitre en retard, mais c'est le prog auquel je veux me connecter qui est en retard !!
DocteurVB Messages postés 211 Date d'inscription lundi 19 août 2002 Statut Membre Dernière intervention 20 mai 2005
28 sept. 2002 à 13:25
très bien se tutorial, très accessible, et bien construit...
seul une petit chose reste malgré tout dans l'ombre (c'est pour ça que j'ai mis 9 et pas 10) : dans cette sub,

§ Private Sub Winsock_DataArrival(ByVal bytesTotal As Long)
§ Dim data As String
§ Winsock.GetData data
§ MsgBox data
§ End Sub

comment un le ctrl winsock peut savoir ce qu'il va recevoir ?
je m'explique, le ctrl winsock recoit des octets, comment déterminé si ces octets correspondent a un type string, integer,Long...?
jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
28 sept. 2002 à 17:09
Winsock traite du flux d'octets (tout comme les Socket en C ou en Java)...
En recevant ce flux, tu le stock en mémoire vive sous la forme que tu veux (String, Integer...). Le mieux c'est d'utiliser une String ou le type Variant à la rigueur.

Pensez bien, que ce qui circule dans le tuyau n'est pas typé, ce sont des trames... disons plutôt des paquets IP contenant des morceaux du flux envoyé...
Le flux est une suite de "0" et de "1"... tout simplement
jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
28 sept. 2002 à 17:10
J'ai oublié de noter...
Je mets 9/10 pour ce bon tutoriel de base sur Winsock...
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
28 sept. 2002 à 18:04
merci à tous
En effet DocteurVB, Jockos a très bien répondu à ta question.
J'ajouterai sinon qu'il est vraiment bon de récupérer les données sous une STRING car ça a l'avantage de VIDER le buffer de réception. Ensuite, on a plus qu'à traiter le bazar. Sinon, si par exemple on prend sous la forme d'un LONG, et ben ça prendra que 4 octets. Evidemment, tout dépend de ce qu'on veut faire avec Winsock...

Clem > dsl mais l'UDP c'est pas ma tasse de thé, en fait je m'y suis même pas penché ! pt - être c très bien, pt - être pa !
Tchao !
ja001net Messages postés 10 Date d'inscription jeudi 19 septembre 2002 Statut Membre Dernière intervention 1 août 2006
28 sept. 2002 à 19:03
Merci beaucoup Celiphane pour cet excellent tutorial destiné aux debutants !!
bydavid Messages postés 62 Date d'inscription samedi 21 septembre 2002 Statut Membre Dernière intervention 5 août 2003
25 oct. 2002 à 22:03
10/10 J'avais pas trop compris le ctrl Winsock et maintenant je comprends ! Merci !
cs_feedback Messages postés 5 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 14 juillet 2003
18 déc. 2002 à 07:35
SAlut comment tu fais pour envoyé un message avec winsock lorsque tu as un groupe de controle en winsock et que tu veux envoyé le meme message a toute les winsock du groupe de controle
Car moi avec winsock.senddata et un for il n'y a que le dernier control qui recoit de l'info .............. feedback
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
20 déc. 2002 à 18:57
ba, avec le for each c'est bien aussi, moi j'aurais fais ça sinon :

dim i as integer
for i=0 to wck.count-1
wck(i).senddata "super exemple n'est-ce pas ?"
doevents
next i

si par contre tes winsocks sont parsemés (genre il n'existe que wck(0) wck(1) wck(5) wck(7) et wck(13) par exemple) ba oui prend le for each.
Ca tourne pas si tu fais :

dim W as winsock
for each W in Form_Qui_T_Interesse
W.senddata "super exemple n'est-ce pas ?"
doevents
next W

???

Répond moi, j'ai pas testé avec le each. @+
olicool Messages postés 16 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 5 mai 2003
31 déc. 2002 à 15:16
je comprend beaucoup mieux le winsock merci
eka808 Messages postés 72 Date d'inscription dimanche 24 novembre 2002 Statut Membre Dernière intervention 29 avril 2005
3 janv. 2003 à 13:00
Bravo !
10/10 je comprends mieux winsock maintenant, merci !
peponr Messages postés 22 Date d'inscription mercredi 20 novembre 2002 Statut Membre Dernière intervention 26 février 2003
5 janv. 2003 à 01:40
un zip serai pas mal...
eka808 Messages postés 72 Date d'inscription dimanche 24 novembre 2002 Statut Membre Dernière intervention 29 avril 2005
5 janv. 2003 à 17:36
même problème que feedback...
seul le dernier connecté reçoit l'info
Merci de répondre, je ne comprends pas ce ki se passe.
a+ eka808
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
5 janv. 2003 à 17:50
peponr : un zip ? pq faire ? mettre du texte ? lol
eka808 : merci pour tes remerciements, quant à ton probleme, j'ai répondu à feedback, cette solution ne fonctionne-t-elle pas ? n'oublie pas de mettre un doevents, winsock à besoin de pause...
cs_FuSe Messages postés 18 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 10 juillet 2003
7 janv. 2003 à 22:52
c'est pas mal ton truc mais sur ce site ou je ne sait plus trop où j'ai trouvé une source qui gère ( je trouve) plus intelligement la multi connection:
en fait le serveur est composé de deux controles winsock : 1 qui est par exemple sur le port 600 et un autre suivant ton exemple : à chaque connection il y en a un nouveau qui se crée.l'autre ce trouve en fait sur le port 600+1+nb de connections...
donc en fait le client (avec bien sur son petit controle winsock unique) se connecte sur le port 600.
alors le controle que l'on pourrai nommer "portinfo" accepte la connection, envoie un message ( par exemple "[port]" & numéro de port ).
le client alors en recevant ce message, se déconnecte du controle "portinfo" et se connecte (à la même adresse) avec le numéro de port indiqué par "portinfo".
bon j'explique juste ce que j'ai compris d'une source et ce n'ai pas de moi mais j'ai trouvé que c'était trés bien.
Mais après une relecture de ton exemple viens à moi une question, on peu avoir différents clients connectés sur le même port ?
Enfin voilà j'ai très peu de connaissance donc je n'oserai aller à l'encontre de celui&celle qui affronta euh dark side c ça son nom ???
En conclusion bravo pour votre tutorial, c'est bête que je l'aie pas vu avant j'aurai compris plus vite :)
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
8 janv. 2003 à 10:31
Merci FuSe pour ton commentaire.

Je ne me vante pas d'être LA "connaissance incarnée" en matière de winsock, mais je trouve que l'exemple que tu m'as cité est une très mauvaise adaptation du multi-connect...
Car comme tu fais bien de le demander, le même port peut être utlisé sans aucun problème, et c'est pourquoi donc je qualifie la méthode que tu cites "mauvaise" : complication du code, temps perdu (en prog comme en temps machine, si infime soit-il de nos jours ;) ).
Je ne la trouve donc pas du tout "plus intelligente" comme tu le dis, mais bien plus "encombrante".

Mais comme je le signale plus haut, je n'impose rien à personne, libre à vous tous d'adapter ce code, si vous pensez qu'il le vaut mieux ! Mais cependant cette méthode elle celle utilisée par les winsockers...

Quoi qu'il en soit, bonne prog' à toi, FuSe, et à vous tous ! Tchao @+
MirSPCM Messages postés 3 Date d'inscription dimanche 16 décembre 2001 Statut Membre Dernière intervention 26 novembre 2003
9 janv. 2003 à 21:15
celiphane :
Bravo :) C'est simpa de prendre du temps pour les gens :=)

FuSe :
Ta solutions poses entre autres les problemes suivants :
1) c'est plus lent et ça prends plus de bande passante.
2) En admetant que ton serveur derriere un routeur et que tu utilise PAT pour foward les ports.
Et bien dans ce cas si on utilise ta solution, il faut foward tous les ports nécessaire à l'execution de ton programme. Donc si ton prog gere 255 clients il faudra ouvrire 255 ports, et comme dans la plupart des cas on fait ça MANUELLEMENT c'est très chiant et très long.
et en + ça bouffe des ports que t'aurais pu rediriger sur une autre machine par exemple (mais bon c pas vraiment un probleme vu le nombre de ports ....)
Avec le multi-connect selon celiphane tu n'a besoin de foward qu'UN SEULE PORT et ça marche niquel meme derriere un routeur/firewall.

Voilà, et encore bravo celiphane pour le suivit :=)
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
9 janv. 2003 à 22:22
et toc !

lol, merci MirSPCM !

non je déconne, ba ouais j'avais pas pensé à tout ça non plus ! bien joué. Par contre a muri dans ma tête un autre argument et de taille lui aussi : quand on navigue sur le net, on utilise bien toujours le port 80. Quand vous ouvrez 36 fenetres IE (ou autres), qu'est-ce que vous croyez hein ? Que c'est les ports 80 81 82 83 ... qui s'ouvrent pour charger chaque fenetre simultanement ? ba non ca reste du 80 pour le http, donc si les pros qu'on créé tout ca font comme ca, c'est que ca doit etre tres bien comme ca ! (lol, quel argument !)

merci à tous pour toutes vos réactions sur ce tutorial, et bonne prog'

Tchao @+
cs_code Messages postés 3 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 20 février 2003
20 févr. 2003 à 11:39
salut celiphane je suis toujour bloquer j'ai essai plusieur methode pour separe l'information meme j'ai créer une fonction qui identifier chaque caratere d'une chaine mais j'arrive pas a separer l'information du .GetData data
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
20 févr. 2003 à 14:09
Code, explique EXACTEMENT ce que tu veux faire : je ne peux pas te faire un cours ou un exemple à partir de rien !
Donne ta situation, ton besoin etc, mais précisément...
@+
albert0 Messages postés 249 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 9 août 2008
20 févr. 2003 à 22:01
j'ai le meme probleme moi: donc ce que je veu faire enfet c'est que j'envoi le pseudo .senddata "trlalala" et j'envoi un phrase .senddata"trululu" maintant pour l'envoi c'est ok mais pour la reception comment on fait pour mettre le pseudo dans le textbox 1 et la phrase dans le textbox2?? chui dsl celi mais j'ao po bien compris ca dans ton super tut
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
21 févr. 2003 à 01:02
ya pas de mal les gars !
Voici la marche à suivre :

on va suivre l'exemple simple proposé par albert0, à savoir l'envoi d'un pseudo puis l'envoie d'une phrase.

1° on a 2 type de données à envoyer/recevoir, on va donc définir 2 codes

2° disons qu'on décide de "P" pour le pseudo et de "M" comme message pour la phrase

3° quand on envoie le pseudo, on va le faire sous la forme suivante :
wck.senddata "P" & Variable_pseudo

4° pour la phrase, on va le faire sous la forme suivante :
wck.senddata "M" & Variable_phrase

5° à la réception, on reçoit tout dans une variable chaine, par exemple data avec : wck.getdata data

6° maintenant il s'agit de faire comprendre au programme qu'est-ce que contient data, à savoir ici, un pseudo, ou une phrase

7° on va donc récupérer le code, c'est à dire le premier caractère, qu'on va placer dans une variable Code, avec ces lignes :
dim Code as string * 1 'je déclare Code comme une chaine d'1 caract.
code = left(data,1) 'je récupère le premier caractère à gauche de data
data = right(data, len(data)-1) 'je retire le code de data, pour qu'il ne contienne QUE l'information transmise (phrase ou pseudo)

8° à la suite, je teste le Code reçu pour déterminer ce que je dois faire de ce qu'il reste dans data. J'utilise ci-dessous un "Select case" car ceci montre comment faire une structure propre si vous avez plus de 2 codes :
select case Code
case "P" 'dans le cas d'un pseudo
Zone_de_texte_pseudo.text = data
case "M" 'dans le cas d'une phrase
Zone_de_texte_phrase.text = data
end select

9° C'est assez clair comme ça ? ;)

Tchao @+
albert0 Messages postés 249 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 9 août 2008
21 févr. 2003 à 13:13
ouais c'est parfait, la j'ai mieu compris, mais j'ai encore quelque question :)
quand tu dit "disons qu'on décide de "P" pour le pseudo..." sa veu dire quoi que le pseudo du mec c'est P ou bien que P c'est justement pour identifer a la reception?? voila si c'est bien ca alors sa veu dire que

code = left(data,1) comme tu dit on va matter la premier lettre si c'est m ou p (Palbert0)

si non le reste c'ets ok :)

redsl chui long a la détente :)
a plus
albert0 Messages postés 249 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 9 août 2008
21 févr. 2003 à 17:23
car voila ce j'ai essayer de faire:

dans un bouton:
W.SendData "P" & (Form1.nick.Text)
W.SendData "M" & (Form1.nick.Text & "> " & Text1.Text)

dans data arrival

Dim data As String
Dim Code As String * 1
W.GetData data
Code = Left(data, 1)
data = Right(data, Len(data) - 1)


Select Case Code
Case "P"
MsgBox data
Case "M" 'dans le cas d'une phrase
chat.SelStart = Len(chat.Text)

chat.SelText = vbCrLf & data
chat.SelStart = Len(chat.Text)
End Select

je met comme pseudo alberto et he test

mais dans le text box ki apparait il y a ecrit albertMalberto> le textquej'aienvoyer


c'est biizard je comprend pas pk sa fait ca , pourtant g suivi a la lettre ton tuto :/
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
22 févr. 2003 à 09:43
n'envoie JAMAIS 2 infos comme ça à la suite sur un winsock, comme dans ton exemple.
ou si vraiment t obligé, place un DOEVENTS entre tes envoies, ici donc entre les 2 w.senddata de ton bouton. Un programme c'est ligne à ligne, si tu as deux lignes qui se suivent sans pause, il ne peut pas descendre interprêter les evenements relatifs, sources d'erreur.
Le mieux avec winsock dans ces cas là, c'est de gérer une structure envoie/accusé de réception : tu envoies une infos à un wck, il la recoit la traite puis envoie un code pour faire comprendre à l'autre comme quoi il est pret pour la suite. L'autre la recoit puis envoie la suite et ainsi de suite... pigé ?
C'est pas sorcier vous verrez,
Tchao @+
espritclub Messages postés 6 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 16 juin 2010
5 mars 2003 à 17:53
Tout d'abord mercxi pour ce tutorial et merci a tous ceux qui font partager leur savoir sur ce site.
Je suis un petit nouveau et j'aimerais bien maintenant pour realiser un jeu multiclient pouvoir mettre en place en meme tps un multiserveurs ( au nbre de 2) de maniere a ne pas arreter le jeu si un serveur tombe en panne. Les clients doivent donc changer de serveur automatiquement en cas de probleme mais sans interrompre le jeu. Voila je suis ouvert a toutes propositions suceptible de m'aider. Bonne journee a tous.
jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
15 mars 2003 à 14:41
Ce que dis celiphane est exact...
Un dialogue client/serveur, c'est ça...
D'ailleur, quand la connexion est établit entre le client et le serveur, on ne fait plus vraiment la distinction entre le client et le serveur. Les 2 sont des interlocuteurs...

1- A envoi un message à B.
2- A attend la réponse de B.... (boucle d'attente... avec DoEvents dans la boucle !)
3- B réceptionne le message de A, le traite et envoi un acquittement à B ou un autre message.
4- B attend la réponse de A... (boucle d'attente)
....
....
...
...

Vous pouvez regarder les exemples d'envoi de mail anonyme qu'il y a sur ce site pour comprendre le dialogue client/serveur...
dragonspyro93 Messages postés 8 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 17 avril 2003
19 mars 2003 à 21:00
Je veut faire une application avec un server et des clients
le server sert juste a envoyer des messages et les clients juste a les
recevoir

voile lecode pour le vouton

Private Sub Command1_Click()
For i = 1 To wck.Count - 1
wck(i).SendData (txtSend.Text)
Next i
txtSend.Text = ""
End Sub


mais cela n envoit le message qu au dernier client connecté pourquoi ?

voila lecode complet du server qui je crois est conforme au tutorial

Const PORT = 1001
Dim nb As Integer

'bouton
Private Sub Command1_Click()
For i = 1 To wck.Count - 1
wck(i).SendData (txtSend.Text)
Next i
txtSend.Text = ""
End Sub

Private Sub Form_Load()
nb = 0
serveur.LocalPort = PORT
serveur.Listen
End Sub

'demande de connection
Private Sub serveur_ConnectionRequest(ByVal requestID As Long)
nb = nb + 1
Load wck(nb)
wck(nb).Accept requestID
' afficher (requestID)
End Sub
Private Sub Wck_Close(Index As Integer)
Unload wck(Index)
If wck.Count 0 Then nb 0
End Sub

Private Sub afficher(txt As String)
MsgBox (txt)
End Sub
albert0 Messages postés 249 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 9 août 2008
20 mars 2003 à 16:49
c'est pas wck.count qui faut faire mais nb-1 j'explique :)


For a = 1 To Nb - 1 'boucle qui envoi le message a tout les user
chat.SelStart = Len(chat.Text)
chat.SelText = vbCrLf & "*** Server Message: " & Text1.Text
chat.SelStart = Len(chat.Text)
W(a).SendData "B" & "*** " & Text1.Text
Next a

vala Nb le nb qui fait + 1 a chaque foi que quelqun se connect

albert0
dragonspyro93 Messages postés 8 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 17 avril 2003
20 mars 2003 à 21:45
Bon alors voila quelque chose de mystique (c est pasune facon de parler). je crois avoir resolut mon probleme (merci albert0) apparemment ca marche si on met nb et non nb - 1 .
Mais voila si je fais ca :

'bouton qui envoit le texte a tous les clients
Private Sub Command1_Click()
For a = 1 To nb
wck(a).SendData (txtSend.Text)
MsgBox (a)
Next a
txtSend.Text = ""
End Sub

ca marche !!!! mais si je commente "MsgBox (a)" ca ne marche plus (seul lepremier connecte recoit le message). Quelqu un as t il une solution a ce mysterieux mystere ????
Serais ce un bug de VB 6.0 ou de mes neurones ?????

Merci de votre aide
cs_FuSe Messages postés 18 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 10 juillet 2003
20 mars 2003 à 22:20
Salut,
Bon euh d'après ce que j'ai déjà pu observer, il dfaut mettre la commande Doevents juste après ton senddata, ne me demande pas pourquoi, la msdn en anglais est un peu trop spirituelle à mon gout, mais bon normalement ça marche, à chaque fois que j'ai fait des appli avec des sends à plusieurs clients ya pas eu de problème.
Essaye et tu verra ...
jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
20 mars 2003 à 22:35
Exact, en mettant DoEvents, ça marche...
ça permet de vider le buffer et de laisser respirer le Système...
dragonspyro93 Messages postés 8 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 17 avril 2003
21 mars 2003 à 08:46
Merci beaucoup
Une derniere question. Si j ai 10 000 clients cela ne va t il pas ramer ?
Est ce la bonne solution ?
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
21 mars 2003 à 09:14
j'ai déjà expliqué dans les commentaires plus haut (le dernier de celiphane au-dessus) pourquoi un doevents est nécessaire, et qu'il faut au mieux faire un système avec "accusé de réception".

qd à savoir la vitesse avec 10000 clients, je n'ai jamais eu l'occasion de tester !!!
Vous me tiendez au courant ! c'est intéressant ! ;)
themrok666 Messages postés 14 Date d'inscription mardi 11 mars 2003 Statut Membre Dernière intervention 11 octobre 2004
20 avril 2003 à 18:26
Tres bon tuto, merci pr les noobs comme moi ;-)
Il y a un petit passage ou tu va assez vite, un peu trop meme, Dr VB l'a dailleurs écrit aussi, mais en tout cas je me suis tres bien debrouillé rien qu'avec ton tuto, il est donc a porté de TOUS.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
12 mai 2003 à 00:22
merci encore !
cs_temoin Messages postés 59 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 30 octobre 2006 1
30 mai 2003 à 18:25
super mec tu explique mieux que mon prof
sethpaien Messages postés 1 Date d'inscription mercredi 11 septembre 2002 Statut Membre Dernière intervention 4 juin 2003
4 juin 2003 à 21:25
Ahh je vais pouvoir enfin faire une application serveur-client.
Thanks2U
NBesty Messages postés 1 Date d'inscription lundi 28 avril 2003 Statut Membre Dernière intervention 5 juin 2003
5 juin 2003 à 21:49
Contrairement a ce que vous dites, UDP n'est pas nul... Au contraire il est bien plus rapide que TCP puisqu'on a viré tous les controles d'erreur...

UDP sert dans le cas de satellites, de trucs comme ca... Dans le cas ou une réponse un peu erronnée est moins grave qu'une réponse lente...

Voila pour le principe d'UDP...
Pour finir, tout bon informaticien a appris les deux lors de sa formation... UDP est bien plus utilisé qu'on ne le croit dans le mondre professionnel
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
5 juin 2003 à 23:06
Du calme du calme, pas la peine de pollué ce site avec ton triple comment'.

Merci pour cette briante information. Pour les autres, je maintiens, UDP c'est nul.

@+

Lol, mais non je plaisante, je veux juste faire dresser les cheveux de Nbesty ;)

bon nbesty, oui tu aimes UDP. Nan je n'ai pas reç de formation UDP, ni TCP d'ailleurs, car j'apprend seul et je retranscrit mes impressions.
J'ai dit UDP=nul en précisant dans mon premier commentaire plus haut que "je ne m'y suis jamais intéressé et que peut être c'est bien peut être c'est nul".
Aujourd'hui, je m'en fous, car UDP ne répond pas DU tout à mes attentes : ca ne marche qu'en locale, c'est pas sécurisé et ca ne répond pas du tout au couche de communication réseau : c'est un protocole bateau en phase d'extinction.
C'est ma part du gateau telle que je la vois... et jamais je n'irai apprendre a quelqu'un qu'il faut penser comme moi !

ma devise,
UDP, c'est peut etre pour vous, moi je m'en fous !

lol ;)

@+ et merci de tes informations pour ceux que ca interesse !
Igorbis Messages postés 2 Date d'inscription samedi 14 juin 2003 Statut Membre Dernière intervention 21 juin 2003
14 juin 2003 à 18:41
J'ai un petit probleme et j'espere que vous aller y répondre, meme si la question à l'air terriblement con!
Quand j'essaye de mettre un winsock j'ai un message qui me dit que j'ai pas la licence adéquate pour l'utiliser, comment ça se fait ça?
Je vous avais dis que la question était con mais pouvez vous y répondre SVP.
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
15 juin 2003 à 20:45
C'est loin d'être idiot comme pb !
Voici une bonne piste il me semble, parmi tant d'autres ! Au pire pense a lire les comment's !
@+
Igorbis Messages postés 2 Date d'inscription samedi 14 juin 2003 Statut Membre Dernière intervention 21 juin 2003
21 juin 2003 à 09:26
J'ai regardé tous les comment's mais apperement personne n'a eu le mm pb que moi! A moins que je n'ai sauté un passage, pour la peine, je relis :)
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
21 juin 2003 à 17:35
dsl, j'ai raté mon copier coller ! j'avais mis l'adresse d'une source qui permettait l'enregistrement des controles dans la base de registre, et dans les commentaires de cette source ils donnaient d'autres solutions !
j'étais tombé dessus par hasard, donc je ne peux plus te donner cette adresse ! bonne recherche cela dit ! @+
Nargzul Messages postés 438 Date d'inscription vendredi 9 mai 2003 Statut Membre Dernière intervention 26 juillet 2007 4
27 juin 2003 à 14:26
splendide! men faut encore!!!!

non, mais si il pouvait y avoir un peu plus...

mais superbe, je connaissais pas le winsock ya une heure et mnt mon application chat tourne!!! thanks 9/10 pour la grosseur du contenu 10/10 pour la qualité, on mettra 10 koi...
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
27 juin 2003 à 17:59
encore une fois, merci
Ickik Messages postés 193 Date d'inscription lundi 27 janvier 2003 Statut Membre Dernière intervention 10 mars 2010 2
30 juin 2003 à 16:27
genial. pour tous ceux qui comme moi l'avait (le winsck) decouvert par un prog bourrin, la on redecouvre mais avec des explications (c pas tous jours) et on se contente pas de recopier betement.
cs_babboss Messages postés 121 Date d'inscription vendredi 27 octobre 2000 Statut Membre Dernière intervention 29 novembre 2006
3 juil. 2003 à 05:05
salut,
merci pour ce tuto.
moi j ai apris un truc c le DoEvents
avant je bidouiller pour ke sa marche et bin maintenant je v metre DoEvents :D

euh sinon tu pourai parler de PeekData par ce ke j ai po compris koi sa servai
et puis tu explike super bien je trouve :)
celiphane Messages postés 466 Date d'inscription samedi 16 février 2002 Statut Membre Dernière intervention 20 avril 2007
3 juil. 2003 à 10:58
slt, merci
babboss> peekdata ? c'est pas dans le tutorial ça, a moins que tu ne parles de getdata, la méthode winsock, et là oui ca rentre dans le cadre du tutorial, mais je ne vais m'étendre d'avantage, car il me semble que c'est deja bien ravacher ! ;)
@+
jockos Messages postés 321 Date d'inscription dimanche 22 octobre 2000 Statut Membre Dernière intervention 14 mai 2005 2
3 juil. 2003 à 11:25
La méthode GetData d'un controle Winsock sert à transférer les données contenu dans le buffer (tampon) d'arrivé dans une variable de ton programme (variable sur laquel tu pourras alors travailler).

Pour résumé, ça sert simplement à récupérer les données reçu par ton control Winsock (provenant de la couche TCP).

Pour infos, UDP est aussi utilisé sur internet, même si on parle de réseau TCP/IP sur le Net.
Pour les softs de visio-conférence, on utilise UDP au niveau de la couche Transport (du modèle OSI) et on utilise un protocol de gestion d'ordonnancement des données et de correction sur une couche Superieur (RTP et RTCP). Cela dans le but de gagner en vitesse d'échange (nécessaire pour des échanges real-time)...
ria94 Messages postés 97 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 3 octobre 2006
3 juil. 2003 à 12:31
Juste un petit message pour dire que c'est trop excellent ce que t'as fait, simple et explicite j'imaginais pas mieux.
ria94 Messages postés 97 Date d'inscription mercredi 28 mai 2003 Statut Membre Dernière intervention 3 octobre 2006
3 juil. 2003 à 12:35
Au fait je mets 12/10 et j'aurai peut etre bien pas mal de question a te poser dans le futur etant donné que je debute avec winsock.
cs_vinc Messages postés 32 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 11 octobre 2003
5 juil. 2003 à 19:57
Comment on fait pour envoier une command....et bien je veut dire: si je fait wck.senddata picture2.visible = true.......comment je fait pour que lautre winsock recoive et traite la demende??
cs_FuSe Messages postés 18 Date d'inscription samedi 28 décembre 2002 Statut Membre Dernière intervention 10 juillet 2003
5 juil. 2003 à 20:19
Hum on me corrigera si je me trompe mais tu peut pas envoyer ce genre de commande ( le code il se modifie pas en temps réel ), il faut que tu envoie une chaine ( ex : "[visible]" ) et ensuite sur le programme recepteur dans l'evenement data arrival ( un truc du genre m'en rapelle plus ) tu fait getdata et tu analyse la chaine , et en fonction du code reçu ( ex "[visible]" ) tu execute ton code ( picture2.visible=true). En gros enfin moi c'est ma technique, tu a une section des chaines ( les 5 premiers caratères par exemple ) qui contient un code d'operation et ensuite tu peut ajouter à la chaine des paramètres... Je fait donc avec un select case ...
Voila en esperant t'avoir éclairé un peu ...
Rejoignez-nous