Question

J'écris un programme de socket binaire peer-to-peer. Il n'y a que deux points de terminaison. Une prise écoute sur mon système d'ordinateur portable. L'autre socket diffuse à partir de mon système de bureau. J'ai un troisième programme en cours d'exécution sur un serveur hébergé, qui est disponible pour négocier la connexion entre les deux. Mon problème est que lorsque l'ordinateur portable et le bureau sont sur le même réseau, ils ont tous les deux la même adresse IP Internet mais différents IPS intranet, mais lorsque l'ordinateur portable est sur la route, les adresses IP sont différentes. Afin d'être vraiment peer-to-peer, je dois l'écrire pour qu'après établir la connexion, les deux ordinateurs communiquent directement entre eux. Comment cela est-il généralement accompli, lorsque les deux ordinateurs pourraient potentiellement partager la même adresse IP, s'ils fonctionnent sur le même réseau?

Était-ce utile?

La solution

Votre question est vraiment: comment puis-je gérer traduction d'adresse réseau Dans un système P2P?

Une possibilité consiste à exiger des trous piqués dans les systèmes NAT / Firewall - qui garantira que les demandes à un port donné sont envoyées à un ordinateur donné. Autoriser plusieurs clients à l'intérieur du réseau nécessiterait de pousser plusieurs trous et de configurer chaque client avec le port correspondant.

Une autre possibilité impliquant UDP est ici- Je ne l'ai pas suffisamment examiné pour savoir s'il retire vraiment le courtier de l'équation après une poignée de main.

Comme toujours, Google peut être votre ami.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top