資源簡介
C#簡單窗體聊天程序,主要是練習一下C#封裝的TcpListener、TcpClient以及NetworkStream的使用
代碼片段和文件信息
using?System;
using?System.Drawing;
using?System.Collections;
using?System.ComponentModel;
using?System.Windows.Forms;
using?System.Data;
using?System.Net;
using?System.Net.Sockets;
using?System.Threading;
using?System.IO;
namespace?ChatTest
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????}
????????private?NetworkStream?networkStream;
????????private?StreamReader?streamReader;
????????private?StreamWriter?streamWriter;
????????private?TcpClient?myclient;
????????private?Thread?recvThread;???//?接收信息線程
????????private?Thread?sendThread;???//?發送信息線程
????????private?Thread?serverThread;//?服務線程
????????//[STAThread]
????????private?void?button1_Click(object?sender?EventArgs?e)
????????{
????????????serverThread?=?new?Thread(new?ThreadStart(Connection));
????????????serverThread.Start();
????????}
????????private?void?Connection()
????????{
????????????try
????????????{
????????????????IPAddress?ipAddress?=?IPAddress.Parse(txtIP.Text);
????????????????Int32?port?=?Int32.Parse(txtPort.Text);
????????????????string?hostName?=?Dns.GetHostEntry(ipAddress).HostName;
????????????????myclient?=?new?TcpClient(hostName?port);
????????????}
????????????catch
????????????{
????????????????MessageBox.Show(“沒有連接到服務器!“);
????????????????return;
????????????}
????????????listBox1.Items.Add(“客戶端成功連接上服務器!“);
????????????button1.Enabled?=?false;?????//?連接上了,不讓按“連接”按鈕
????????????button2.Enabled?=?true;
????????????button3.Enabled?=?true;
????????????networkStream?=?myclient.GetStream();
????????????streamReader?=?new?StreamReader(networkStream);
????????????streamWriter?=?new?StreamWriter(networkStream);
????????????//?創建接收信息線程,并啟動
????????????recvThread?=?new?Thread(new?ThreadStart(RecvData));
????????????recvThread.Start();
????????}
????????//?接收數據
????????private?void?RecvData()
????????{
????????????string?s?=?streamReader.ReadLine();
????????????//?如果沒接到服務器退出的消息,則繼續接收信息
????????????while?(!s.Equals(“exit“))
????????????{
????????????????listBox1.Items.Add(“收到信息:“?+?s);
????????????????s?=?streamReader.ReadLine();
????????????}
????????????//?收到服務器退出的消息,釋放資源
????????????listBox1.Items.Add(“服務器關閉“);
????????????listBox1.Items.Add(“客戶端關閉“);
????????????button1.Enabled?=?true;
????????????button2.Enabled?=?false;
????????????button3.Enabled?=?false;
????????????// streamReader.Close();
????????????// streamWriter.Close();
????????????// networkStream.Close();
????????????// myclient.Close();
????????????ReleaseResouce();
????????}
????????private?void?button2_Click(object?sender?EventArgs?e)
????????{
????????????button1.Enabled?=?true;??//?按了停止之后,“連接”按鈕可以用,“發送”不能用
????????????button2.Enabled?=?false;
????????????button3.Enabled?=?false;
????????????string?exitMsg?=?“exit“;??//?要退出時,發送?exit?信息給服務器
????????????streamWriter.WriteLine(exitMsg);
????????????//刷新當前數據流中的數據
????????????s
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12800??2012-08-13?21:08??ChatTest\ChatTest\bin\Debug\ChatTest.exe
?????文件??????28160??2012-08-13?21:08??ChatTest\ChatTest\bin\Debug\ChatTest.pdb
?????文件??????14328??2012-08-13?21:12??ChatTest\ChatTest\bin\Debug\ChatTest.vshost.exe
?????文件????????490??2007-07-21?02:33??ChatTest\ChatTest\bin\Debug\ChatTest.vshost.exe.manifest
?????文件???????3762??2012-08-13?20:36??ChatTest\ChatTest\ChatTest.csproj
?????文件???????6392??2012-08-13?21:08??ChatTest\ChatTest\Form1.cs
?????文件???????7542??2012-08-13?21:01??ChatTest\ChatTest\Form1.Designer.cs
?????文件???????5814??2012-08-13?21:01??ChatTest\ChatTest\Form1.resx
?????文件????????515??2012-08-13?21:12??ChatTest\ChatTest\obj\Debug\ChatTest.csproj.FileListAbsolute.txt
?????文件????????847??2012-08-13?21:06??ChatTest\ChatTest\obj\Debug\ChatTest.csproj.GenerateResource.Cache
?????文件??????12800??2012-08-13?21:08??ChatTest\ChatTest\obj\Debug\ChatTest.exe
?????文件????????180??2012-08-13?21:06??ChatTest\ChatTest\obj\Debug\ChatTest.Form1.resources
?????文件??????28160??2012-08-13?21:08??ChatTest\ChatTest\obj\Debug\ChatTest.pdb
?????文件????????180??2012-08-13?20:36??ChatTest\ChatTest\obj\Debug\ChatTest.Properties.Resources.resources
?????文件????????572??2012-08-13?20:39??ChatTest\ChatTest\Program.cs
?????文件???????1372??2012-08-13?20:27??ChatTest\ChatTest\Properties\AssemblyInfo.cs
?????文件???????2866??2012-08-13?20:27??ChatTest\ChatTest\Properties\Resources.Designer.cs
?????文件???????5612??2012-08-13?20:27??ChatTest\ChatTest\Properties\Resources.resx
?????文件???????1093??2012-08-13?20:27??ChatTest\ChatTest\Properties\Settings.Designer.cs
?????文件????????249??2012-08-13?20:27??ChatTest\ChatTest\Properties\Settings.settings
?????文件????????914??2012-08-13?20:27??ChatTest\ChatTest.sln
????..A..H.?????13824??2012-08-13?21:12??ChatTest\ChatTest.suo
?????目錄??????????0??2012-08-13?20:30??ChatTest\ChatTest\obj\Debug\Refactor
?????目錄??????????0??2012-08-13?20:27??ChatTest\ChatTest\obj\Debug\TempPE
?????目錄??????????0??2012-08-13?20:36??ChatTest\ChatTest\bin\Debug
?????目錄??????????0??2012-08-13?21:08??ChatTest\ChatTest\obj\Debug
?????目錄??????????0??2012-08-13?20:27??ChatTest\ChatTest\bin
?????目錄??????????0??2012-08-13?20:27??ChatTest\ChatTest\obj
?????目錄??????????0??2012-08-13?20:27??ChatTest\ChatTest\Properties
?????目錄??????????0??2012-08-13?21:08??ChatTest\ChatTest
............此處省略4個文件信息
評論
共有 條評論