資源簡(jiǎn)介
單機(jī)自己給自己傳10M,左右。與網(wǎng)上盛傳的UDP可靠傳輸傳輸控制策略不同,底層采用完成端口模式Socket。
實(shí)現(xiàn)可靠傳輸,源碼中包含打洞代碼,只有普通打洞,沒(méi)有端口猜測(cè),打洞功能沒(méi)有加入demo中。
如有更好的建議希望通知我,到空間留言。
或聯(lián)系QQ 231231526

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.Text;
using?System.Drawing;
using?System.Drawing.Drawing2D;
namespace?CNIMControlRender
{
????public?enum?ButtonState
????{
????????MouseEnter?=?0
????????MouseOut?=?1
????????MouseDown?=?2
????????MouseUp?=?3
????}
????public?class?ButtonRender:?IControlRender
????{
????????private?ButtonState?bs?=?ButtonState.MouseOut;//正常狀態(tài)
????????///?
????????///?要繪制的按鈕狀態(tài)
????????///?
????????public?ButtonState?State
????????{
????????????get?{?return?bs;?}
????????????set?{?bs?=?value;?}
????????}
????????private?Color?_borderColor?=?Color.WhiteSmoke;
????????///?
????????///?邊框顏色
????????///?
????????public?Color?BorderColor
????????{
????????????get?{?return?_borderColor;?}
????????????set?{?_borderColor?=?value;?}
????????}
????????private?Color?_glassColor?=?Color.WhiteSmoke;
????????///?
????????///?鼠標(biāo)移上時(shí)的半透明色
????????///?
????????public?Color?GlassColor
????????{
????????????get?{?return?_glassColor;?}
????????????set?{?_glassColor?=?value;?}
????????}
????????private?int?cornerRadius?=?1;
????????///?
????????///?設(shè)置圓角半徑
????????///?
????????public?int?CornerRadius
????????{
????????????get?{?return?cornerRadius;?}
????????????set?{?cornerRadius?=?value;?}
????????}
????????public?ButtonRender()?{?}
????????///?
????????///?繪制按鈕
????????///?
????????///?繪制面板
????????///?要繪制的按鈕矩形區(qū)域
????????public?void?DrawControl(Graphics?g?Rectangle?Bounds)
????????{
????????????GraphicsPath?gp?=?Meth.CreateRoundedRectanglePath(Bounds?cornerRadius);
????????????DrawGlass(g?gp?Bounds);
????????}
????????private?void?DrawGlass(Graphics?g?GraphicsPath?gp?Rectangle?bounds)
????????{
????????????switch?(bs)
????????????{
????????????????case?ButtonState.MouseDown:
????????????????????DrawGlassDown(g?gp?bounds);
????????????????????break;
????????????????case?ButtonState.MouseOut:
????????????????????DrawGlassOut(g?gp?bounds);
????????????????????break;
????????????????case?ButtonState.MouseUp:
????????????????case?ButtonState.MouseEnter:
????????????????????DrawGlassEnter(g?gp?bounds);
????????????????????break;
????????????}
????????}
????????private?void?DrawGlassDown(Graphics?g?GraphicsPath?gpRectangle?bounds)
????????{
????????????using?(LinearGradientBrush?lgb?=?new?LinearGradientBrush(bounds.Location
????????????????new?Point(bounds.X?bounds.Y?+?(bounds.Height?/?2))
?????????????????Color.FromArgb(128?_glassColor)
????????????????????Color.Transparent))
????????????{
????????????????lgb.WrapMode?=?WrapMode.TileFlipXY;
????????????????g.FillPath(lgb?gp);
????????????}
????????????DrawBorder(g?gp);
????????}
????????private?void?DrawGlassOut(Graphics?g?GraphicsPath?gp?Rectangle?bounds)
????????{
???????????
????????}
????????privat
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件??????12288??2010-12-16?15:58??C#_UDP可靠文件傳輸\CNIMControlRender\bin\Debug\CNIMControlRender.dll
?????文件??????38400??2010-12-16?15:58??C#_UDP可靠文件傳輸\CNIMControlRender\bin\Debug\CNIMControlRender.pdb
?????文件???????4011??2010-12-10?13:12??C#_UDP可靠文件傳輸\CNIMControlRender\ButtonRender.cs
?????文件???????2393??2010-12-10?13:42??C#_UDP可靠文件傳輸\CNIMControlRender\CNIMControlRender.csproj
?????文件????????513??2010-12-10?11:19??C#_UDP可靠文件傳輸\CNIMControlRender\IControlRender.cs
?????文件???????2464??2010-12-10?10:49??C#_UDP可靠文件傳輸\CNIMControlRender\LoadSystemInfo.cs
?????文件???????4097??2010-12-10?13:06??C#_UDP可靠文件傳輸\CNIMControlRender\Meth.cs
?????文件????????489??2010-12-16?15:58??C#_UDP可靠文件傳輸\CNIMControlRender\obj\Debug\CNIMControlRender.csproj.FileListAbsolute.txt
?????文件??????12288??2010-12-16?15:58??C#_UDP可靠文件傳輸\CNIMControlRender\obj\Debug\CNIMControlRender.dll
?????文件??????38400??2010-12-16?15:58??C#_UDP可靠文件傳輸\CNIMControlRender\obj\Debug\CNIMControlRender.pdb
?????文件???????5148??2011-02-23?15:02??C#_UDP可靠文件傳輸\CNIMControlRender\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
?????文件???????3274??2010-12-10?13:46??C#_UDP可靠文件傳輸\CNIMControlRender\PanelRender.cs
?????文件???????5468??2010-12-10?14:43??C#_UDP可靠文件傳輸\CNIMControlRender\ProgressRender.cs
?????文件???????1366??2010-12-09?17:35??C#_UDP可靠文件傳輸\CNIMControlRender\Properties\AssemblyInfo.cs
?????文件??????26624??2011-02-22?18:35??C#_UDP可靠文件傳輸\CNIMFileTransmission\bin\Debug\CNIMFileTransmission.dll
?????文件??????85504??2011-02-22?18:35??C#_UDP可靠文件傳輸\CNIMFileTransmission\bin\Debug\CNIMFileTransmission.pdb
?????文件??????13312??2011-02-22?18:35??C#_UDP可靠文件傳輸\CNIMFileTransmission\bin\Debug\CNIMNetob
?????文件??????67072??2011-02-22?18:35??C#_UDP可靠文件傳輸\CNIMFileTransmission\bin\Debug\CNIMNetob
?????文件??????25600??2011-02-22?18:35??C#_UDP可靠文件傳輸\CNIMFileTransmission\bin\Debug\CNIMNetWork.dll
?????文件??????95744??2011-02-22?18:35??C#_UDP可靠文件傳輸\CNIMFileTransmission\bin\Debug\CNIMNetWork.pdb
?????文件???????3001??2011-02-16?15:39??C#_UDP可靠文件傳輸\CNIMFileTransmission\CNIMFileTransmission.csproj
?????文件???????2267??2011-02-16?14:40??C#_UDP可靠文件傳輸\CNIMFileTransmission\EventHandle.cs
?????文件???????6013??2011-02-22?16:45??C#_UDP可靠文件傳輸\CNIMFileTransmission\FileBlockReceive.cs
?????文件???????7902??2011-02-22?18:37??C#_UDP可靠文件傳輸\CNIMFileTransmission\FileBlockSender.cs
?????文件????????533??2011-02-16?15:41??C#_UDP可靠文件傳輸\CNIMFileTransmission\FileDataBuffer.cs
?????文件??????11189??2011-02-22?18:11??C#_UDP可靠文件傳輸\CNIMFileTransmission\FileReceiver.cs
?????文件???????9775??2011-02-21?17:11??C#_UDP可靠文件傳輸\CNIMFileTransmission\FileSender.cs
?????文件???????1128??2011-02-15?13:41??C#_UDP可靠文件傳輸\CNIMFileTransmission\FileTransmissionState.cs
?????文件???????1789??2010-12-06?16:13??C#_UDP可靠文件傳輸\CNIMFileTransmission\MD5Helper.cs
?????文件???????3135??2011-02-22?17:53??C#_UDP可靠文件傳輸\CNIMFileTransmission\obj\Debug\CNIMFileTransmission.csproj.FileListAbsolute.txt
............此處省略283個(gè)文件信息
評(píng)論
共有 條評(píng)論