Nous avons deux instances ou plus («nœuds») d'un programme se connectant les unes aux autres sur TCP. Nous l'avons implémenté comme suit:C# TcpClient Connectez-vous en premier pour vous connecter
// 1. Connect
TcpClient connection;
while(true){
try
{
connection = new TcpClient("localhost", ((Port)Port).Value);
}
catch(SocketException/* Exception*/)
{
continue;
}
break;
}
// use the connection
Cela se passe en parallèle. Le noeud qui se connecte en premier est considéré comme le parent du noeud auquel il se connecte. Nous voulons utiliser cette propriété pour générer un arbre couvrant. Comment savoir quel nœud est connecté en premier, car la seule façon de se connecter est d'appeler le constructeur de TcpClient? Où trouvons-nous des informations supplémentaires sur la connexion? Notez qu'à des fins de test, nous utilisons plusieurs ports sur une même machine. Il devrait fonctionner entre différentes machines sur Internet.
Il n'y a pas de serveur central, nous avons des nœuds qui se connectent les uns aux autres. Nous voulons obtenir des informations supplémentaires du processus de connexion TCP, en particulier; quel noeud a été le premier à initier la connexion. – Maarten
Ah, mais vous voyez: il n'y a pas de serveur * central *, mais vos instances doivent avoir un code serveur pour permettre à une autre instance de se connecter. C'est pourquoi vous devez avoir un port différent pour chaque instance. La volonté racine est celle qui ne peut pas trouver un serveur, et ainsi de suite. –