資源簡介
1,Server支持多客戶訪問;
2,C與S之間使用TCP連接;
3,C與C之間直接通信(不是通過S傳遞)。
4,C與C之間直接通信既可以使用TCP,也可以使用UDP。
5,可以使用Socket,也可以使用TcpClient/UdpClient等;

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.IO;
using?System.Linq;
using?System.Net;
using?System.Net.Sockets;
using?System.Text;
using?System.Threading;
using?System.Threading.Tasks;
using?System.Windows.Forms;
namespace?SyncChatClient
{
????public?partial?class?Client?:?Form
????{
????????private?bool?isExit?=?false;
????????private?TcpClient?client;
????????private?BinaryReader?br;
????????private?BinaryWriter?bw;
????????private?List?userList?=?new?List();
????????private?TcpListener?myListener;
????????IPAddress?localAddress;
????????private?static?int?myport;
????????public?Client()
????????{
????????????InitializeComponent();
????????????Random?r?=?new?Random((int)DateTime.Now.Ticks);
????????????textBoxUserName.Text?=?“User“?+?r.Next(100?999);
????????????listBoxOnline.HorizontalScrollbar?=?true;
????????????//---------------------c-c----------------------------------
????????????IPAddress[]?addrIP?=?Dns.GetHostAddresses(Dns.GetHostName());
????????????localAddress?=?addrIP[0];
????????????while?(true)
????????????{
????????????????myport?=?r.Next(2049?8888);
????????????????try
????????????????{
????????????????????myListener?=?new?TcpListener(localAddress?myport);
????????????????????break;
????????????????}
????????????????catch
????????????????{
????????????????????//如果端口不可用
????????????????}
????????????}
????????????myListener.Start();
????????????Thread?myThread?=?new?Thread(ListenClientConnect);
????????????myThread.IsBackground=true;
????????????myThread.Start();
????????}
????????//---------------------c-c----------------------------------
????????private?void?ListenClientConnect()???
????????{
????????????TcpClient?newClient?=?null;
????????????while?(true)
????????????{
????????????????try
????????????????{
????????????????????newClient?=?myListener.AcceptTcpClient();
????????????????}
????????????????catch
????????????????{
????????????????????break;
????????????????}
????????????????User?user?=?new?User(newClient);
????????????????Thread?threadReceive?=?new?Thread(ServerReceive);
????????????????threadReceive.Start(user);
????????????????threadReceive.IsBackground?=?true;
????????????}
????????}
????????//---------------------c-c----------------------------------
????????private?void?ServerReceive(object?userState)????//客戶端充當server的接收方法
????????{
????????????User?user?=?(User)userState?;//////////////////////////////////////////
????????????TcpClient?client?=?user.client;
????????????while?(isExit?==?false)
????????????{
????????????????string?receiveString?=?null;
????????????????try
????????????????{
????????????????????receiveString?=?user.br.ReadString();
????????????????????AddTalkMessage(receiveString);
????????????????}
????????????????catch
????????????????{
????????????????????if?(isExit?==?false)
??????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????189??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\App.config
?????文件??????17920??2018-06-21?12:22??實驗2TCP+UDP通信實驗\SyncChatClient\bin\Debug\SyncChatClient.exe
?????文件????????189??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\bin\Debug\SyncChatClient.exe.config
?????文件??????38400??2018-06-21?12:22??實驗2TCP+UDP通信實驗\SyncChatClient\bin\Debug\SyncChatClient.pdb
?????文件??????11592??2018-06-21?15:05??實驗2TCP+UDP通信實驗\SyncChatClient\bin\Debug\SyncChatClient.vshost.exe
?????文件????????189??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\bin\Debug\SyncChatClient.vshost.exe.config
?????文件????????490??2013-06-18?20:28??實驗2TCP+UDP通信實驗\SyncChatClient\bin\Debug\SyncChatClient.vshost.exe.manifest
?????文件??????11752??2018-04-30?19:47??實驗2TCP+UDP通信實驗\SyncChatClient\Client.cs
?????文件???????8875??2018-04-30?19:47??實驗2TCP+UDP通信實驗\SyncChatClient\Client.Designer.cs
?????文件???????5817??2018-04-30?19:47??實驗2TCP+UDP通信實驗\SyncChatClient\Client.resx
?????文件???????1463??2018-04-30?20:23??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\DesignTimeResolveAssemblyReferences.cache
?????文件???????6477??2018-06-21?14:54??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件????????180??2018-04-30?19:47??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\SyncChatClient.Client.resources
?????文件???????3664??2018-06-21?15:05??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\SyncChatClient.csproj.FileListAbsolute.txt
?????文件????????976??2018-04-30?19:47??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\SyncChatClient.csproj.GenerateResource.Cache
?????文件???????2383??2018-04-30?19:47??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\SyncChatClient.csprojResolveAssemblyReference.cache
?????文件??????17920??2018-06-21?12:22??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\SyncChatClient.exe
?????文件??????38400??2018-06-21?12:22??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\SyncChatClient.pdb
?????文件????????180??2018-04-30?19:44??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\SyncChatClient.Properties.Resources.resources
?????文件??????????0??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
?????文件??????????0??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
?????文件??????????0??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\obj\Debug\TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
?????文件????????527??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\Program.cs
?????文件???????1336??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\Properties\AssemblyInfo.cs
?????文件???????2841??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\Properties\Resources.Designer.cs
?????文件???????5612??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\Properties\Resources.resx
?????文件???????1101??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\Properties\Settings.Designer.cs
?????文件????????249??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\Properties\Settings.settings
?????文件???????3966??2018-04-30?01:05??實驗2TCP+UDP通信實驗\SyncChatClient\SyncChatClient.csproj
?????文件???????2560??2018-04-30?01:12??實驗2TCP+UDP通信實驗\SyncChatClient\TCP_UDP通信實驗.suo
............此處省略54個文件信息
評論
共有 條評論