2017-08-09 1 views
0

J'essaye de créer un programme Unity qui va lire à partir d'un socket qui envoie des paquets UDP, et créer des changements de jeu en conséquence. J'ai été capable de traiter les données avec la classe UDPClient, mais quand j'ai basculé la plateforme vers Windows (j'en ai besoin parce qu'elle fonctionne sur Hololens), le UDPClient n'a pas été reconnu et j'ai dû passer à l'API Windows.Networking . J'ai trouvé quelques exemples en ligne sur les personnes qui acceptent UDP dans l'unité comme ceux-ci: https://forums.hololens.com/discussion/578/hololens-udp-server https://forums.hololens.com/discussion/7980/udp-communication-solved#latestConnexion UDP en utilisant Windows Networking

Mais même quand je les essayer non modifiés (à l'exception des ports et adresses IP), je reçois rien lors du test avec mon paquet Application de l'expéditeur Est-ce que quelqu'un peut-il me montrer la bonne direction? Je suis un peu confus par ces exemples car ils n'utilisent pas la boucle infinie que j'ai l'habitude d'utiliser dans les sockets, et utilisent plutôt une sorte de gestion d'événements bizarre.

+0

Quel message exception obtenez-vous? Quel numéro d'IP et de port utilisez-vous? Un vérificateur de virus ou un pare-feu peut bloquer le numéro de port. Le serveur doit être démarré en premier et vous devez vous connecter à l'adresse IP du serveur et au numéro de port. – jdweng

+0

@jdweng Merci pour votre réponse. Le dernier port que j'ai essayé était 62804 et l'adresse IP était juste celle de ma machine locale (j'utilise mon application Packet Sender sur le même ordinateur). Je dois construire et exécuter l'application chaque fois que je teste, donc je ne suis pas capable de vérifier les instructions de débogage, mais il semble que le seul problème est qu'il ne capte aucun paquet. Une chose à noter peut-être que lorsque j'essayais cela auparavant avec un UDPClient typique, il m'a demandé l'autorisation d'accéder au réseau, mais ce n'est pas le cas ici. Je ne sais pas comment je pourrais obtenir ça pour revenir. – Snowday313

+0

Les connexions sécurisées utilisent plusieurs ports. Les commandes sont envoyées sur le port 465 ou 587, mais les données réelles sont envoyées sur des ports différents. – jdweng

Répondre

0

Les applications UWP ne sont pas autorisées à recevoir des paquets UDP provenant d'un hôte local. Vous devez exécuter votre application d'expéditeur de paquet sur une autre machine. Voir ceci:

Voir ceci: UWP app doesn't receive UDP Datagram from a .NET desktop app on localhost

+0

Merci, je n'avais aucune idée. Savez-vous pourquoi c'est le cas? – Snowday313

+0

Probablement parce que "Microsoft l'a dit". Je ne pense pas qu'il y ait une autre raison. – Sunius

+0

Je semble toujours incapable de recevoir des paquets, même en les envoyant d'une autre machine. Ai-je besoin de faire quelque chose de spécial pour que ces gars parlent? P.S. Je fais tout cela dans Unity. Y at-il un autre éditeur qui pourrait rendre le travail avec toutes ces choses plus facile que Visual Studio? – Snowday313