Voici ma peine:besoin d'une meilleure façon d'attendre entre envoyer et recevoir, UdpClient
J'ai une classe udp qui me permettent d'envoyer et recevoir des données d'un serveur de jeu.
Mais j'ai trouvé que le serveur n'autoriser qu'une seule requête par 500ms par client. donc si j'envoie deux requêtes à la suite, le serveur répond seulement au premier, et je n'ai aucun moyen de savoir que je n'obtiendrai pas la deuxième réponse.
Donc, j'ai fait un Mutex pour protéger la partie d'envoi, quand j'envoie des données, j'utilise un thread pour bloquer le mutex 500ms.
Cette classe est utilisée par les threads, c'est pourquoi j'utilise mutex.
Mais cela ne fonctionne pas vraiment bien, parfois la réception est bloquée. Je veux juste savoir si quelqu'un a une meilleure façon de le faire.
Merci et désolé pour mon anglais.
EDIT: Je ne peux pas utiliser le protocole tcp, j'ai besoin de faire cela avec udp. J'ai également besoin d'un moyen optimal, j'ai besoin d'obtenir les données de réception dès que possible à la forme de vue. Je regarde tous les sujets sur le net je trouve sur UDP et le filetage, mais ne trouve pas ce cas particulier.
c'est vraiment intéressant, j'espère que cela fonctionnera, je vais essayer ce soir , de toute façon c'est mieux que ma première façon, merci! – Mackhdo
Il y a un bug dans ce code, 'sleep (duration)' devrait être 'sleep (MIN_DELAY - duration)'. C'est en dehors du fait qu'il n'est pas C#;) – Doggett
@Doggett: Correction du bug. C'était censé être un pseudo-code semblable à C#. Je peux répondre à la question sans passer du temps à chercher comment obtenir l'heure actuelle en millisecondes. Le code que j'ai fourni était la partie importante. – unholysampler