Bonjour,
En ce moment je crée une application en c# qui doit se connecter à un équipement électronique via Wifi qui utilise l'adresse IP : 169.254.1.1 port TCP : 2000.
Dans cette application c# je doit pouvoir me connecter pour pouvoir faire la configuration puis me déconnecter pour pouvoir l'utiliser avec d'autres équipements et ensuite pourvoir me reconnecter pour des éventuels modifications.
Mon code est le suivant :
Mon problème c'est que je n'arrive pas à me reconnecter. J'ai utilisé les fonctions Shutdown, Disconnect et Close sans succès.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Diagnostics; namespace test { public partial class Wifi : Form { public Wifi() { InitializeComponent(); Ecrire.Visible = false; } Socket sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); private void Connexion_Click(object sender, EventArgs e) { IPEndPoint IP = new IPEndPoint(IPAddress.Parse("169.254.1.1"), 2000); try { sck.Connect(IP); Connexion.Text = "Connecté"; Connexion.BackColor = Color.ForestGreen; Ecrire.Visible = true; } catch (SocketException) { sck.Shutdown(SocketShutdown.Both); //sck.Disconnect(true); //sck.Close(); MessageBox.Show("Connectez vous"); Connexion.Text = "Déconnecté"; Connexion.BackColor = Color.Red; return; } } } }
Message d'erreur :
" Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.dll
Informations supplémentaires*: Une fois le socket déconnecté, vous pouvez uniquement le reconnecter de manière asynchrone, et sur un point de terminaison (EndPoint) différent. BeginConnect doit être appelé sur un thread qui ne fermera pas tant que l'opération n'a pas été menée à terme. "
Partager