Je tente de me connecter à mon routeur dans le réseau local. J'ai utilisé le TcpClient jusqu'ici.C# TcpClient Timeout
Vérifiez mon code:
public static void RouterConnect()
{
TcpClient tcpClient = new TcpClient("192.168.180.1",23); <-- Timeout comes up here
tcpClient.ReceiveTimeout = 2000; // Not working
tcpClient.SendTimeout = 2000; // Also not working
NetworkStream nStream = tcpClient.GetStream(); <-- thought Timeout would raise here
// Further code here. But already tested while commented out.
// So everything else expect the code above shouldnt be relevant.
}
Je voudrais ajouter une forme paramètres (routeur IP/utilisateur/mot de passe). Par conséquent, il peut y avoir un échec du côté de l'utilisateur où l'utilisateur tape dans une adresse IP hôte non existante.
Le délai d'attente actuel est d'environ 20 secondes, ce qui est beaucoup trop élevé. TcpClient.ReceiveTimeout
et TcpClient.SendTimeout
arnt les bons délais pour définir comme je l'ai déjà essayé. Google ne m'aidait pas avec ça. Donc, quelqu'un sait comment régler le délai d'attente de la bonne façon pour cela? J'ai lu sur async. connexions que je ne voudrais pas utiliser. Un nettoyeur 1 ligne-timeout-set serait bien. Possible?
Merci beaucoup!
Edit 1: Avec un peu plus près pendant le débogage j'ai remarqué, le délai d'attente soulève déjà à l'initialisation du tcpclient (comme modifié ci-dessus dans mon code) non pas comme je pensais avant à .GetStream()
.
EDIT SOLUTION:
Comme personne n'affiché le code de travail de la solution que je pris, voilà comment son travail:
public static void RouterConnect()
{
TcpClient tcpClient = new TcpClient();
if(tcpClient.ConnectAsync("192.168.80.1",23).Wait(TimeSpan.FromSeconds(2)))
{
NetworkStream nStream = tcpClient.GetStream();
}
else
{
MessageBox.Show("Could not connect!");
}
}
Où lisez-vous le flux? – cubrr
Il vient plus tard, mais n'est pas pertinent, je suppose. J'ai commenté la lecture. Le délai d'expiration vient comme vu dans mon code édité ci-dessus à l'initialisation du tcpClient. – C4u
Ce constructeur de 'TcpClient' également [connecte le client] (https://msdn.microsoft.com/en-us/library/115ytk56 (v = vs.110) .aspx) au point de terminaison. – cubrr