Bonjour à tous !
voila je suis en BTS IG et dans le cadre de mes (futurs) oraux je doit présenter des programmes en differents langages.
En alternance, j'ai pas enormement de temps de cours, j'avance donc en tentant d'apprendre des langages par moi même.
En ce moment c'est C# et ce fameux framework Dot Net.
Seulement voila, j'ai pour m'exercer, recuperer sur internet un code source d'un prog C# de Chat en reseau.
J'essaye de comprendre encore le fonctionnement global, et de modifier, améliorer et personnalisé le code afin de m'en servir pour mes projets.
J'ai une fonction qui permet de me connecter en tant que client.
Seulement je me trouve face à une exception levée sans que je ne comprenne vraiment pourquoi.
L'exception est la suivante:
"impossible de connecter à : 127.0.0.1 l'ordinateur cible l'a expressément refusé"
J'utilise le port 8100.
voici ma fonction:
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 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
/* fonction de connection en tant que client */
private void clientConnect()
{
/* label de l'application */
this.Text = "Client - " + Pseudo.Text;
/* On récupère sous forme de chaîne l'ip saisie par l'utilisateur */
string IpServeur = Adresse.Text;
if (Pseudo.Text == "" || Adresse.Text == "" || Port.Text == "")
{
MessageBox.Show("Tous les champs doivent être remplis");
}
else
{
if (InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate() { clientConnect(); }));
}
else
{
/* si le boolean connexion est à true, on est deja connecté */
if (connexion == true)
{
MessageBox.Show("vous êtes déja connecté");
}
else
{
try
{
/* Création d'un objet de type TcpClient avec l'ip et le port défini auparavant */
MonClientTCP = new TcpClient(IpServeur, usePort);
/* On récupère la chaîne de connexion créée avec les arguments de l'objet TcpClient */
unNS = MonClientTCP.GetStream();
/* initialisation du thread d'ecoute */
ThreadEcoute = new Thread(new ThreadStart(ecoute));
/* On demarre le thread "ecoute" */
ThreadEcoute.Start();
/* On définit un objet de type StreamWriter avec le NetworkStream en argument */
unSW = new StreamWriter(unNS);
/* On définit un objet de type StreamReader avec le NetworkStream en argument */
unSR = new StreamReader(unNS);
/* Notre StreamWriter enverra de manière automatique les informations sur Networkstream */
unSW.AutoFlush = true;
/* On informe le client que la connexion est démarrée */
unSW.WriteLine("Connexion établie");
/* le booléen connection passe à vrai */
connexion = true;
/* une fois la connexon effective on envoie un message a l'utilisateur */
TexteWidows.Text += inputLine;
}
catch (System.Exception ex)
{
/* on informe l'utilisateur d'un éventuel echec de fermeture d'un des objets */
MessageBox.Show(ex.Message);
}
}
}
}
} |
L'exception est levée à ce moment:
unNS = MonClientTCP.GetStream();
J'ai vérifier sur le net, je n'ai pas de pare feu actif 
Voila si des gens on eu le même soucis et peuvent m'eclairer un peu, cela m'aiderais fort.
De plus si quelqu'un à une explication sur les safe-threads nottament grâce à ce bout de code, j'ai mis ce bout de code mais sans vraiment comprednre l'enjeux
sur le net les explications sont, pour moi, floues:
1 2 3 4 5 6
| if (InvokeRequired)
{
this.Invoke(new MethodInvoker(delegate() { clientConnect(); }));
}
else
{ |
Merci d'avance à tous !
Partager