Protocole UDP

Programmation d'applications complexes
Anonyme

Protocole UDP

Message 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
Dernière modification par Anonyme le lun. 19/déc./2005 22:51, modifié 1 fois.
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message 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 ;)
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message par gansta93 »

ça serait bien de la faire pour être en UserLibrary... :-D
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

Image
Anonyme

Message par Anonyme »

C'est la version de Sebastian Lackner ? elle ne fonctionne pas sous la 3.94 :?
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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.
Anonyme

Message 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.
Anonyme

Message 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...
@++
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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
Anonyme

Message 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
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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
Anonyme

Message 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)

@+
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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.
Anonyme

Message par Anonyme »

je t'ai envoyer un MP avec mon E-mail.
@+
gansta93
Messages : 1448
Inscription : jeu. 26/févr./2004 11:17
Localisation : Le Village
Contact :

Message 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. :-)
Répondre