資源簡介
異步套接字的服務器端與客戶端,效率高,打開Task Manager測試運行時效率。

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Text;
using?System.Windows.Forms;
using?System.Net;
using?System.Net.Sockets;
using?System.Threading;
namespace?AsySocketClient
{
????public?partial?class?Form1?:?Form
????{
????????#region?...變量...
????????///?
????????///?服務器IP
????????///?
????????private?IPAddress?mIP?=?IPAddress.Parse(“127.0.0.1“);
????????///?
????????///?服務器信息
????????///?
????????private?IPEndPoint?mServer;
????????///?
????????///?工作套接字
????????///?
????????private?Socket?mWorkSock;
????????///?
????????///?異步連接事件
????????///?
????????private?static?ManualResetEvent?connectDone?=?new?ManualResetEvent(false);
????????///?
????????///?異步發送事件
????????///?
????????private?static?ManualResetEvent?sendDone?=?new?ManualResetEvent(false);
????????///?
????????///?顯示代理
????????///?
????????///?
????????///?
????????private?delegate?void?DisplayHandler(RichTextBox?rchTxtDisplay?string?strPara);
????????#endregion?...變量...
????????#region?...私有方法...
????????///?
????????///?顯示字符串
????????///?
????????///?
????????///?
????????private?void?DisplayText(RichTextBox?rchTxtDisplay?string?strPara)
????????{
????????????rchTxtDisplay.Text?+=?strPara?+?“\r\n“;
????????}
????????///?
????????///?異步連接請求的回調方法
????????///?
????????///?
????????private?void?ConnectCallback(IAsyncResult?ar)
????????{
????????????try
????????????{
????????????????//客戶端Socket對象
????????????????Socket?client?=?(Socket)ar.AsyncState;
????????????????client.EndConnect(ar);
????????????????//開始接受數據的線程
????????????????StartWork();
????????????????//設置信號,連接成功
????????????????connectDone.Set();
????????????}
????????????catch
????????????{
????????????}
????????}
????????///?
????????///?開始工作
????????///?
????????private?void?StartWork()
????????{
????????????try
????????????{
????????????????//實例化一個狀態對象,用來傳遞sock
????????????????Stateobject?state?=?new?Stateobject();
????????????????state.workSocket?=?mWorkSock;
????????????????//開始接收數據,接受到的數據保存在狀態對象中
????????????????mWorkSock.BeginReceive(state.buffer?0?Stateobject.BufferSize?0?new?AsyncCallback(ReceiveCallback)?state);
????????????}
????????????catch?(Exception?ee)
????????????{
????????????????MessageBox.Show(ee.Message);
????????????}
????????}
????????///?
????????///?接受數據的回調方法
????????///?
????????///?
????????private?void?ReceiveCallback(IAsyncResult?ar)
????????{
????????????try
????????????{
????????????????Stateobject?state?=?(Stateobject)ar.AsyncState;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????3237??2008-09-06?20:10??AsySocket\AsySocketClient\AsySocketClient\AsySocketClient.csproj
?????文件??????24576??2008-09-07?21:19??AsySocket\AsySocketClient\AsySocketClient\bin\Debug\AsySocketClient.exe
?????文件??????30208??2008-09-07?21:19??AsySocket\AsySocketClient\AsySocketClient\bin\Debug\AsySocketClient.pdb
?????文件???????5632??2005-12-08?14:51??AsySocket\AsySocketClient\AsySocketClient\bin\Debug\AsySocketClient.vshost.exe
?????文件???????5767??2008-09-07?21:19??AsySocket\AsySocketClient\AsySocketClient\Form1.cs
?????文件???????4536??2008-09-06?20:10??AsySocket\AsySocketClient\AsySocketClient\Form1.Designer.cs
?????文件???????5814??2008-09-06?20:10??AsySocket\AsySocketClient\AsySocketClient\Form1.resx
?????文件????????324??2008-09-07?21:21??AsySocket\AsySocketClient\AsySocketClient\obj\AsySocketClient.csproj.FileList.txt
?????文件????????842??2008-09-06?20:10??AsySocket\AsySocketClient\AsySocketClient\obj\Debug\AsySocketClient.csproj.GenerateResource.Cache
?????文件??????24576??2008-09-07?21:19??AsySocket\AsySocketClient\AsySocketClient\obj\Debug\AsySocketClient.exe
?????文件????????180??2008-09-06?20:10??AsySocket\AsySocketClient\AsySocketClient\obj\Debug\AsySocketClient.Form1.resources
?????文件??????30208??2008-09-07?21:19??AsySocket\AsySocketClient\AsySocketClient\obj\Debug\AsySocketClient.pdb
?????文件????????180??2008-09-06?20:10??AsySocket\AsySocketClient\AsySocketClient\obj\Debug\AsySocketClient.Properties.Resources.resources
?????文件????????474??2008-09-06?20:04??AsySocket\AsySocketClient\AsySocketClient\Program.cs
?????文件???????1200??2008-09-06?20:04??AsySocket\AsySocketClient\AsySocketClient\Properties\AssemblyInfo.cs
?????文件???????2884??2008-09-06?20:04??AsySocket\AsySocketClient\AsySocketClient\Properties\Resources.Designer.cs
?????文件???????5612??2008-09-06?20:04??AsySocket\AsySocketClient\AsySocketClient\Properties\Resources.resx
?????文件???????1098??2008-09-06?20:04??AsySocket\AsySocketClient\AsySocketClient\Properties\Settings.Designer.cs
?????文件????????249??2008-09-06?20:04??AsySocket\AsySocketClient\AsySocketClient\Properties\Settings.settings
?????文件????????934??2008-09-06?20:04??AsySocket\AsySocketClient\AsySocketClient.sln
????..A..H.?????54272??2008-09-07?15:58??AsySocket\AsySocketClient\AsySocketClient.suo
?????文件???????3237??2008-09-06?20:01??AsySocket\AsySocketServer\AsySocketServer\AsySocketServer.csproj
?????文件??????24576??2008-09-07?21:53??AsySocket\AsySocketServer\AsySocketServer\bin\Debug\AsySocketServer.exe
?????文件??????36352??2008-09-07?21:53??AsySocket\AsySocketServer\AsySocketServer\bin\Debug\AsySocketServer.pdb
?????文件???????5632??2008-09-07?21:06??AsySocket\AsySocketServer\AsySocketServer\bin\Debug\AsySocketServer.vshost.exe
?????文件???????6228??2008-09-07?21:53??AsySocket\AsySocketServer\AsySocketServer\Form1.cs
?????文件???????4703??2008-09-06?20:01??AsySocket\AsySocketServer\AsySocketServer\Form1.Designer.cs
?????文件???????5814??2008-09-06?20:01??AsySocket\AsySocketServer\AsySocketServer\Form1.resx
?????文件????????324??2008-09-07?21:53??AsySocket\AsySocketServer\AsySocketServer\obj\AsySocketServer.csproj.FileList.txt
?????文件????????868??2008-09-07?21:06??AsySocket\AsySocketServer\AsySocketServer\obj\AsySocketServer.csproj.FileListAbsolute.txt
............此處省略34個文件信息
評論
共有 條評論