Page 1 sur 2

Protocole UDP

Publié : dim. 18/déc./2005 19:14
par Anonyme
Je me suis fait une petite dll avec devc++ concernant Winsock et le protocole UDP.
J'ai donc programmer un client & un serveur pour voir l'éfficacité de ma dll.
Pour le moment cela marche bien (en local), mais il reste des améioration à faire notament pour la vitesse d'execution lors de l'envois et la reception. je fourni la dll avec 2 exemples.


EDIT :

File:1->WinsockUDP.rar
Image

Publié : dim. 18/déc./2005 20:18
par Gillou
Je viens de télécharger ta dll

J'arrive un peu à la bourre pour t'envoyer message mais en local ça tourne nickel ;)

Publié : dim. 18/déc./2005 23:30
par gansta93
ça serait bien de la faire pour être en UserLibrary... :-D

Publié : lun. 19/déc./2005 9:09
par Flype

Publié : lun. 19/déc./2005 11:16
par Anonyme
C'est la version de Sebastian Lackner ? elle ne fonctionne pas sous la 3.94 :?

Publié : lun. 19/déc./2005 12:09
par gansta93
Cpl.Bator a écrit :C'est la version de Sebastian Lackner ? elle ne fonctionne pas sous la 3.94 :?
Oui j pensait à cette lib, mais je ne l'ai pas sitée pour cette raison.

Publié : lun. 19/déc./2005 15:43
par Anonyme
elle ne fonctionne plus , c'est dommage, cela m'aurrait évité de la faire.
Ma version actuelle ne permet pas de choisir le socket pour le "bindage"
(Lie un socket à un port, pour l'écoute) ni meme de choisir l'id du socket à fermer.
Celle que j'ai sous la main le permet. je fait une p'tite source sous PB afin de gerer la dll avec des threads et des pointeurs à gogo, la source servira surement pour ma premiere lib ^^. en tout cas l'udp servira pour les jeux en réseaux, notament pour mon bomberman. d'autre pourront l'utiliser pour envoyer un flux audio, ou une image webcam, un chat etc...
il y a des pertes, les paquets n'arrive pas dans l'ordres ( a 2 ou 3 paquets près) mais ce n'est pas grave, cela se gère & la rapiditer n'a rien a voir avec le tcp/ip.

Publié : lun. 19/déc./2005 23:13
par Anonyme
Je viens de faire une p'tite màj sous forme de librairie (voir 1°post)
J'ai utiliser Dll2PBlib & Tailbite, il faut obligatoirement la dll qui est fournie avec dans le répertoire de votre code utilisant la librairie.

Les paramètres de la lib ne sont pas très clair, donc voici un petit explicatif
des commandes :
  • InitWinsock() Renvois 1 si ok , sinon renvois le code d'erreur microsoft

    OpenSocket() Ouvre un socket, Renvois l'ID du Socket. (long)

    BindSocket( Port.l , SocketID.l ) Pour lier un Socket à un port. Renvois 1 si ok, sinon renvois le code d'erreur microsoft

    SendData(Message$,IP$,Port.l,SocketID.l) Envois des donnés (String) à IP$ par le port "Port.l" via le Socket "SocketID" ,Renvois 1 si ok , sinon renvois le code d'erreur microsoft

    ReceiveData(SocketID.l) Retourne l'adresse mémoire du message, a récuperer avec Peeks(), SocketID correspond à l'ID d'un socket préalablement lié avec BindSocket()

    CloseSocket(SocketID.l) Ferme le Socket, renvois 1 si ok, sinon renvois le code d'erreur Microsoft.

    ExitWinsock() Ferme Winsock correctement qui à été préalablement ouvert avec InitWinsock()
Vous pourrez trouver les codes d'erreurs Winsock sur msdn.

dans l'archive fournie, il y a deux exemples simples (exe+sources)
Voilà j'attends vos remarques & suggestions.
Si cela intéresse du monde je ferais une lib "plus propre" avec une belle aide en chm, de jolie exemples, etc...
@++

Publié : lun. 19/déc./2005 23:20
par gansta93
Cpl.Bator a écrit :Je viens de faire une p'tite màj sous forme de librairie (voir 1°post)
J'ai utiliser Dll2PBlib & Tailbite, il faut obligatoirement la dll qui est fournie avec dans le répertoire de votre code utilisant la librairie.
Tu t'es compliqué la vie, pk pas faire ta lib dirrectement en C pour Pure ? simple question...
Si je comprand bien, le client peut aussi maintenant recevoir ? parce qu'avant, ct pas possible.

Merci pour cette lib, effectivement, ça m'intéresse ! :-D

Publié : lun. 19/déc./2005 23:26
par Anonyme
Le client à toujours pu recevoir, sauf qu'il te faudra 2 sockets sur 2 ports différents afin d'éviter une erreur lors du "bindage".
Tiens moi au courrant de tes tests, merci :wink:
ps : la lib et faite en c++ , convertie avec dll2pblib & tailbite

Publié : lun. 19/déc./2005 23:30
par gansta93
Cpl.Bator a écrit :Le client à toujours pu recevoir, sauf qu'il te faudra 2 sockets sur 2 ports différents afin d'éviter une erreur lors du "bindage".
Tiens moi au courrant de tes tests, merci :wink:
Le client a toujours pu recevoir ? je ne te comprand pas...
Mais sinon pas de problème, je teste tout ça demain. :-D
Cpl.Bator a écrit :ps : la lib et faite en c++ , convertie avec dll2pblib & tailbite
Regarde les fichiers LibrarySDK\*.txt, tu comprendras ce que je voulais dire.

Encore merci pr cette lib. :-D

Publié : lun. 19/déc./2005 23:41
par Anonyme
Ooopps , j'ai dit une bétisse, le client ne pouvait pas recevoir sans plantage avant . :oops: (le pire c'est que je persiste dans mes conneries)

@+

Publié : lun. 19/déc./2005 23:45
par gansta93
Cpl.Bator a écrit :Ooopps , j'ai dit une bétisse, le client ne pouvait pas recevoir sans plantage avant . :oops: (le pire c'est que je persiste dans mes conneries)

@+
Lol.
ça te dérange si je t'envoi un rar avec une autre arboressance ? parce que là... d'habitude suffit de faire un copier/coller et c réglé lol.

Publié : mar. 20/déc./2005 0:05
par Anonyme
je t'ai envoyer un MP avec mon E-mail.
@+

Publié : mar. 20/déc./2005 14:15
par gansta93
OK, je vien de t'envoyer tout ça. Dsl pr le retard lol, mais je me suis levé plus tard que prévu. :-)