資源簡介
一個服務器 和可運行多個客戶端 學習專用 利用同步TCP和BinaryReader對象及BinaryWriter對象編寫一個基于Windows窗體的同步TCP網絡聊天程序,實現如下功能:
① 任何一個客戶均可以與服務器進行通信。
② 服務器要能顯示客戶端連接的狀態,當客戶端連接成功后,要及時告訴客戶端已經連接成功的信息,并將當前在線的所有客戶告知該客戶端。
③ 客戶和服務器建立連接后,既可以通過服務器和任何一個在線的其他客戶聊天。
④ 不論客戶何時退出程序,服務器都應做出正確判斷,同時將該客戶是否在線的情況告訴其他所有在線客戶。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;
using?System.Net;
using?System.Net.Sockets;
using?System.Threading;
using?System.IO;
namespace?Client
{
????public?partial?class?Form1?:?Form
????{
????????String?username?=?null;
????????private?bool?isExit?=?false;
????????private?TcpClient?client;
????????private?BinaryReader?br;
????????private?BinaryWriter?bw;
????????public?Form1()
????????{
????????????InitializeComponent();
????????????groupBox1.Visible?=?true;
????????????groupBox2.Visible?=?false;
????????????
????????}
????????private?void?button1_Click_1(object?sender?EventArgs?e)
????????{
????????????MessageBox.Show(“登陸成功!“?“登陸“MessageBoxButtons.OK?MessageBoxIcon.Asterisk);
????????????//textBox1.Text?=?username;
????????????username?=?string.Format(textBox1.Text);
????????????groupBox1.Visible?=?false;
????????????groupBox2.Visible?=?true;
????????????try
????????????{
????????????????client?=?new?TcpClient(Dns.GetHostName()?51888);
????????????????AddTalkMessage(“連接成功“);
????????????}
????????????catch
????????????{
????????????????AddTalkMessage(“連接失敗“);
????????????????return;
????????????}
????????????NetworkStream?networkStream?=?client.GetStream();
????????????br?=?new?BinaryReader(networkStream);
????????????bw?=?new?BinaryWriter(networkStream);
????????????SendMessage(“Login“?+?username);
????????????Thread?threadReceive?=?new?Thread(new?ThreadStart(ReceiveData));
????????????threadReceive.IsBackground?=?true;
????????????threadReceive.Start();
????????}
????????private?void?ReceiveData()
????????{
????????????string?receiveString?=?null;
????????????while?(isExit?==?false)
????????????{
????????????????try
????????????????{
????????????????????receiveString?=?br.ReadString();
????????????????}
????????????????catch
????????????????{
????????????????????if?(isExit?==?false)
????????????????????{
????????????????????????MessageBox.Show(“與服務器失去聯系。“);
????????????????????}
????????????????????break;
????????????????}
????????????????string[]?splitString?=?receiveString.Split(‘‘);
????????????????string?command?=?splitString[0].ToLower();
????????????????switch?(command)
????????????????{
????????????????????case?“login“:??
????????????????????????AddOnline(splitString[1]);
????????????????????????break;
????????????????????case?“logout“:?
????????????????????????RemoveUserName(splitString[1]);
????????????????????????break;
????????????????????case?“talk“:??
????????????????????????AddTalkMessage(string.Format(“[{0}]說:{1}“
????????????????????????????splitString[1]?receiveString.Substring(
????????????????????????????splitString[0].Length?+?splitString[1].Length?+?2)));
????????????????????????break;
????????????????????default:
????????????????????????AddTalkMessage(“什么意思啊:“?+?receiveString
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????14336??2014-11-09?20:11??Server\Server\bin\Debug\Server.exe
?????文件??????28160??2014-11-09?20:11??Server\Server\bin\Debug\Server.pdb
?????文件??????14328??2014-11-09?20:55??Server\Server\bin\Debug\Server.vshost.exe
?????文件????????490??2009-06-11?05:14??Server\Server\bin\Debug\Server.vshost.exe.manifest
?????文件???????8834??2014-11-09?20:11??Server\Server\Form1.cs
?????文件???????4486??2014-11-09?20:09??Server\Server\Form1.Designer.cs
?????文件???????5814??2014-11-09?20:09??Server\Server\Form1.resx
?????文件????????891??2014-11-09?21:01??Server\Server\obj\Debug\Server.csproj.FileListAbsolute.txt
?????文件????????847??2014-11-09?20:09??Server\Server\obj\Debug\Server.csproj.GenerateResource.Cache
?????文件??????14336??2014-11-09?20:11??Server\Server\obj\Debug\Server.exe
?????文件????????180??2014-11-09?20:09??Server\Server\obj\Debug\Server.Form1.resources
?????文件??????28160??2014-11-09?20:11??Server\Server\obj\Debug\Server.pdb
?????文件????????180??2014-11-04?21:08??Server\Server\obj\Debug\Server.Properties.Resources.resources
?????文件????????487??2014-11-04?20:20??Server\Server\Program.cs
?????文件???????1362??2014-11-04?20:20??Server\Server\Properties\AssemblyInfo.cs
?????文件???????2862??2014-11-04?20:20??Server\Server\Properties\Resources.Designer.cs
?????文件???????5612??2014-11-04?20:20??Server\Server\Properties\Resources.resx
?????文件???????1091??2014-11-04?20:20??Server\Server\Properties\Settings.Designer.cs
?????文件????????249??2014-11-04?20:20??Server\Server\Properties\Settings.settings
?????文件???????3758??2014-11-04?21:08??Server\Server\Server.csproj
?????文件????????908??2014-11-04?20:20??Server\Server.sln
????..A..H.?????15360??2014-11-09?21:10??Server\Server.suo
?????文件??????13824??2014-11-09?21:01??Client\Client\bin\Debug\Client.exe
?????文件??????24064??2014-11-09?21:01??Client\Client\bin\Debug\Client.pdb
?????文件??????14328??2014-11-09?21:01??Client\Client\bin\Debug\Client.vshost.exe
?????文件????????490??2009-06-11?05:14??Client\Client\bin\Debug\Client.vshost.exe.manifest
?????文件???????3758??2014-11-09?12:00??Client\Client\Client.csproj
?????文件???????5918??2014-11-09?21:07??Client\Client\Form1.cs
?????文件???????8495??2014-11-09?21:01??Client\Client\Form1.Designer.cs
?????文件???????5814??2014-11-09?21:01??Client\Client\Form1.resx
............此處省略34個文件信息
評論
共有 條評論