Bonjour,
j'ai programmé un petit client IRC avec un TcpClient, mais quand je me connecte, la form se met en "Ne répond pas" et je ne comprend pas pourquoi.
Peut-être parce que le Input read trop rapidement ? Le timer1 est set à 100 en interval. - même mis à 1000 ça fige -
Où serait mon erreur ? *-*
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 TcpClient client; StreamReader input; StreamWriter output; int Port; string Nick, Server, Buffer; public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { richTextBox1.Text += "Connect in progress... \n"; if (textBox2.Text == "") { richTextBox1.Text += "Nick is empty. \n"; } else if (textBox3.Text == "") { richTextBox1.Text += "Server is empty.\n"; } else if (textBox4.Text == "") { richTextBox1.Text += "Port is empty.\n"; } else { client = new TcpClient(); timer1.Start(); Nick = textBox2.Text; Server = textBox3.Text; Port = int.Parse(textBox4.Text); Name = "Irc client"; client.Connect(Server, Port); input = new StreamReader(client.GetStream()); output = new StreamWriter(client.GetStream()); richTextBox1.Text += "Connected. Identifying... \n"; output.Write( "USER " + Nick + " 0 * :" + Name + "\r\n" + "NICK " + Nick + "\r\n" ); richTextBox1.Text += "USER " + Nick + " 0 * :" + Name + "\r\n" + "NICK " + Nick + "\r\n" ; output.Flush(); } } private void timer1_Tick(object sender, EventArgs e) { Buffer = input.ReadLine(); if (Buffer != null) { richTextBox1.Text += Buffer + "\n"; if (Buffer.StartsWith("PING ")) { output.Write(Buffer.Replace("PING", "PONG") + "\r\n"); richTextBox1.Text += Buffer.Replace("PING", "PONG") + "\r\n"; output.Flush(); } Buffer = null; } } private void richTextBox1_TextChanged(object sender, EventArgs e) { richTextBox1.ScrollToCaret(); }
Merci d'avance pour votre aide
Partager