資源簡介
本項目為網絡課程設計的作業,采用c#實現,使用UDP傳輸協議,實現p2p的文件傳輸

代碼片段和文件信息
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.xml;
/*??
?*?00號報文?客戶端通知服務器,客戶端已上線
?*?
?*?01號報文?服務器通知客戶端,服務器停止運行
?*?
?*?05號報文?客戶端通知服務器,客戶端已下線
?*?
?*?06號報文?服務器通知客戶端,在線客戶端信息
?*?
?*/
namespace?project1
{
????public?partial?class?Server?:?Form
????{
????????private?IPEndPoint?ServerInfo;//存放服務器的IP和端口信息
????????private?Socket?ServerSocket;//服務端運行的SOCKET
????????private?Thread?ServerThread;//服務器端運行的線程
????????private?List?ClientSockets?=?new?List();//為客戶端建立的SOCKET連接?
????????private?byte[]?MsgBuffer;//存放消息數據?
????????public?Server()
????????{
????????????InitializeComponent();
????????}
????????private?void?Form1_Load_1(object?sender?EventArgs?e)
????????{
????????????Startbutton.Enabled?=?true;
????????????Stopbutton.Enabled?=?false;
????????}
????????//服務器開始運行
????????private?void?Startbutton_Click(object?sender?EventArgs?e)
????????{
????????????ServerSocket?=?new?Socket(AddressFamily.InterNetwork?SocketType.Stream?ProtocolType.Tcp);
????????????ServerInfo?=?new?IPEndPoint(IPAddress.Any?8001);
????????????ServerSocket.Bind(ServerInfo);//將SOCKET接口和IP端口綁定?
????????????ServerSocket.Listen(10);//開始監聽
????????????MsgBuffer?=?new?byte[65535];//消息數據大小?
????????????ServerThread?=?new?Thread(RecieveAccept);//將接受客戶端連接的方法委托給線程?
????????????ServerThread.Start();//線程開始運行?
????????????CheckForIllegalCrossThreadCalls?=?false;//不捕獲對錯誤線程的調用
????????????Startbutton.Enabled?=?false;
????????????Stopbutton.Enabled?=?true;
????????????StateMsg.Text?=?“服務正在運行“?+?“??運行端口:“?+?8001?+?“\n“;
????????????ClientList.Items.Add(“服務于?“?+?DateTime.Now.ToString()?+?“?開始運行.“);
????????????
????????}
????????//服務器停止運行
????????private?void?Stopbutton_Click(object?sender?EventArgs?e)
????????{
????????????for?(int?i?=?0;?i?????????????{
????????????????if?(ClientSockets[i].Connected)
????????????????{
????????????????????ClientSockets[i].Send(Encoding.UTF8.GetBytes(“01“));
????????????????}
????????????????Array.Clear(MsgBuffer?0?MsgBuffer.Length);
????????????}
????????????ClientSockets.Clear();
????????????ServerThread.Abort();//線程終止
????????????ServerSocket.Close();//關閉
????????????Startbutton.Enabled?=?true;
????????????Stopbutton.Enabled?=?false;
????????????StateMsg.Text?=?“等待運行“;
????????????ClientList.Items.Add(“服務于?“?+?DateTime.Now.ToString()?+?“?停止運行.“);
????????}
????????
?????????//接受客戶端連接的方法
?????????private?void?RecieveAccept()?
?????????{?
?????????????while?(true)
????????????{
????????????????ClientSockets.Add(ServerSocket.Accept());
????????????????ClientSockets[ClientSockets.Count?-?1].BeginReceive(MsgBuffer?0?MsgBuffer.Length?0?new?AsyncCallback(RecieveCallBack)?ClientSo
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????12288??2010-09-15?20:11??P2P文件傳輸的BS系統\project1\project1\project1\bin\Debug\project1.exe
?????文件??????26112??2010-09-15?20:11??P2P文件傳輸的BS系統\project1\project1\project1\bin\Debug\project1.pdb
?????文件??????14328??2010-09-16?00:49??P2P文件傳輸的BS系統\project1\project1\project1\bin\Debug\project1.vshost.exe
?????文件????????490??2007-07-21?01:33??P2P文件傳輸的BS系統\project1\project1\project1\bin\Debug\project1.vshost.exe.manifest
?????文件??????10752??2010-09-07?16:56??P2P文件傳輸的BS系統\project1\project1\project1\bin\Release\project1.exe
?????文件??????32256??2010-09-07?16:56??P2P文件傳輸的BS系統\project1\project1\project1\bin\Release\project1.pdb
?????文件??????14328??2010-09-07?16:56??P2P文件傳輸的BS系統\project1\project1\project1\bin\Release\project1.vshost.exe
?????文件????????490??2009-06-11?05:14??P2P文件傳輸的BS系統\project1\project1\project1\bin\Release\project1.vshost.exe.manifest
?????文件???????7188??2010-09-15?20:11??P2P文件傳輸的BS系統\project1\project1\project1\Form1.cs
?????文件???????4465??2010-09-15?20:11??P2P文件傳輸的BS系統\project1\project1\project1\Form1.Designer.cs
?????文件???????5814??2010-09-15?20:11??P2P文件傳輸的BS系統\project1\project1\project1\Form1.resx
?????文件???????2706??2010-09-16?00:49??P2P文件傳輸的BS系統\project1\project1\project1\obj\Debug\project1.csproj.FileListAbsolute.txt
?????文件????????847??2010-09-15?20:11??P2P文件傳輸的BS系統\project1\project1\project1\obj\Debug\project1.csproj.GenerateResource.Cache
?????文件??????12288??2010-09-15?20:11??P2P文件傳輸的BS系統\project1\project1\project1\obj\Debug\project1.exe
?????文件????????180??2010-09-12?19:40??P2P文件傳輸的BS系統\project1\project1\project1\obj\Debug\project1.Form1.resources
?????文件??????26112??2010-09-15?20:11??P2P文件傳輸的BS系統\project1\project1\project1\obj\Debug\project1.pdb
?????文件????????180??2010-09-07?16:53??P2P文件傳輸的BS系統\project1\project1\project1\obj\Debug\project1.Properties.Resources.resources
?????文件????????180??2010-09-15?20:11??P2P文件傳輸的BS系統\project1\project1\project1\obj\Debug\project1.Server.resources
?????文件???????2150??2010-09-07?20:48??P2P文件傳輸的BS系統\project1\project1\project1\obj\Release\project1.csproj.FileListAbsolute.txt
?????文件????????847??2010-09-07?16:56??P2P文件傳輸的BS系統\project1\project1\project1\obj\Release\project1.csproj.GenerateResource.Cache
?????文件??????10752??2010-09-07?16:56??P2P文件傳輸的BS系統\project1\project1\project1\obj\Release\project1.exe
?????文件????????180??2010-09-07?16:56??P2P文件傳輸的BS系統\project1\project1\project1\obj\Release\project1.Form1.resources
?????文件??????32256??2010-09-07?16:56??P2P文件傳輸的BS系統\project1\project1\project1\obj\Release\project1.pdb
?????文件????????180??2010-09-07?16:53??P2P文件傳輸的BS系統\project1\project1\project1\obj\Release\project1.Properties.Resources.resources
?????文件????????501??2010-09-15?20:11??P2P文件傳輸的BS系統\project1\project1\project1\Program.cs
?????文件???????3762??2010-09-07?16:53??P2P文件傳輸的BS系統\project1\project1\project1\project1.csproj
?????文件?????????74??2010-09-07?16:45??P2P文件傳輸的BS系統\project1\project1\project1\project1.csproj.user
?????文件???????1452??2010-09-07?13:53??P2P文件傳輸的BS系統\project1\project1\project1\Properties\AssemblyInfo.cs
?????文件???????2845??2010-09-07?13:53??P2P文件傳輸的BS系統\project1\project1\project1\Properties\Resources.Designer.cs
?????文件???????5612??2010-09-07?13:53??P2P文件傳輸的BS系統\project1\project1\project1\Properties\Resources.resx
............此處省略60個文件信息
評論
共有 條評論