实例介绍
NetworkComms.Net是一款高性能的跨平台网络库,使用C#语言编写。它的设计初衷是为了让任何.net产品都能轻松地添加高效的网络功能,无需深入了解网络编程就可以快速上手,同时也为有经验的网络开发者提供了强大的功能。
该库支持从服务器到客户端、点对点、云到客户端等多种网络配置,适用于各种网络应用场景。
支持的环境:
- .net 2 兼容语言 (C#, VB .Net, F#, J#, C /CLI 等)
- Mono 2.10 (Linux, Unity3D, MonoGame 等)
- iOS (Xamarin.iOS)
- Android (Xamarin.Android)
- Windows Phone 8
- Windows Store (RT & Metro)
如果你想快速开始使用NetworkComms.Net,包括简短的介绍视频,可以访问我们的官方网站获取更多信息。我们也提供了完整的支持和教程,帮助你更好地利用这个网络库。
// 示例代码 // 创建一个简单的服务器 var server = NetworkComms.AppendGlobalIncomingPacketHandler("Message", (header, connection, message) => { Console.WriteLine(message); }); NetworkComms.StartListening(ConnectionType.TCP, new System.Net.IPEndPoint(System.Net.IPAddress.Any, 0)); // 创建一个客户端并发送消息 var client = new TCPConnection(new ConnectionInfo("127.0.0.1", server.LocalEndPoint.Port)); client.SendObject("Message", "Hello, World!");
【实例截图】
【核心代码】
文件清单
└── NetworkComms.Net-44694797835e699665339d88832cbb487f2aada1
├── ChangeLog.txt
├── DebugTests
│ ├── app.config
│ ├── BandwidthLoadTest.cs
│ ├── BasicSend.cs
│ ├── BluetoothTest.cs
│ ├── ClientHammer.cs
│ ├── DebugTest.cs
│ ├── DebugTests.csproj
│ ├── DFSTest.cs
│ ├── ExampleHelper.cs
│ ├── LogAnalyser.cs
│ ├── NestedPacketTest.cs
│ ├── NumConnectionLoadTest.cs
│ ├── packages.config
│ ├── PeerDiscoveryTest.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── SelfConnectTest.cs
│ ├── SSLTest.cs
│ ├── SymEncryptionTest.cs
│ ├── ThreadPoolTest.cs
│ └── UnmanagedUDPBroadcasts.cs
├── DistributedFileSystem
│ ├── ChunkAvailabilityRequest.cs
│ ├── DataBuildMode.cs
│ ├── DFSAllowedPeerIPs.txt
│ ├── DFS.cs
│ ├── DFSDisallowedPeerIPs.txt
│ ├── DistributedFileSystem.csproj
│ ├── DistributedItem.cs
│ ├── DistributedItemData.cs
│ ├── ItemAssemblyConfig.cs
│ ├── ItemLinkRequest.cs
│ ├── ItemRemovalUpdate.cs
│ ├── LimitedParallelismTaskScheduler.cs
│ ├── networkcomms.net.snk
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── SwarmChunkAvailability.cs
├── DLLAssemble
│ ├── DLLAssemble.cs
│ ├── DLLAssemble.csproj
│ ├── Program.cs
│ └── Properties
│ └── AssemblyInfo.cs
├── Documentation
│ └── Documentation.shfbproj
├── ExamplesChat.WPF
│ ├── app.config
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── ChatAppBase.cs
│ ├── ChatAppWPF.cs
│ ├── ChatMessage.cs
│ ├── ExamplesChat.WPF.csproj
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── NetworkCommsLogo.ico
│ ├── packages.config
│ └── Properties
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ ├── Resources.resx
│ ├── Settings.Designer.cs
│ └── Settings.settings
├── ExamplesConsole
│ ├── AdvancedSend.cs
│ ├── app.config
│ ├── BasicSend.cs
│ ├── DFSTest.cs
│ ├── ExampleHelper.cs
│ ├── ExamplesConsole.csproj
│ ├── IntermediateSend.cs
│ ├── NLogLogger.cs
│ ├── packages.config
│ ├── PeerDiscoveryExample.cs
│ ├── Program.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── RPCExample.cs
│ ├── SpeedTest.cs
│ ├── SSLExample.cs
│ └── UnmanagedConnectionExample.cs
├── ExamplesConsole.VB
│ ├── BasicSend.vb
│ ├── ExampleHelper.vb
│ ├── ExamplesConsole.VB.vbproj
│ ├── My Project
│ │ ├── Application.Designer.vb
│ │ ├── Application.myapp
│ │ ├── AssemblyInfo.vb
│ │ ├── Resources.Designer.vb
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.vb
│ │ └── Settings.settings
│ ├── packages.config
│ └── Program.vb
├── ExamplesFileTransfer.WPF
│ ├── App.config
│ ├── App.xaml
│ ├── App.xaml.cs
│ ├── ExamplesFileTransfer.WPF.csproj
│ ├── MainWindow.xaml
│ ├── MainWindow.xaml.cs
│ ├── NetworkCommsLogo.ico
│ ├── packages.config
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── ReceivedFile.cs
│ └── SendInfo.cs
├── LICENSE
├── NetworkCommsDotNet
│ ├── Connection
│ │ ├── Bluetooth
│ │ │ ├── BluetoothConnection.cs
│ │ │ ├── BluetoothConnectionListener.cs
│ │ │ └── BluetoothConnectionStatic.cs
│ │ ├── ConnectionCreate.cs
│ │ ├── ConnectionDelegatesHandlers.cs
│ │ ├── ConnectionIncomingData.cs
│ │ ├── ConnectionListenerBase.cs
│ │ ├── ConnectionListeners.cs
│ │ ├── ConnectionSendClose.cs
│ │ ├── ConnectionStatic.cs
│ │ ├── ConnectionType.cs
│ │ ├── IPConnection.cs
│ │ ├── SentPacket.cs
│ │ ├── TCP
│ │ │ ├── SSLOptions.cs
│ │ │ ├── TCPConnection.cs
│ │ │ ├── TCPConnectionListener.cs
│ │ │ └── TCPConnectionStatic.cs
│ │ └── UDP
│ │ ├── UDPClientWrapper.cs
│ │ ├── UDPConnection.cs
│ │ ├── UDPConnectionListener.cs
│ │ ├── UDPConnectionStatic.cs
│ │ └── UDPOptions.cs
│ ├── ConnectionInfo.cs
│ ├── DPSBase
│ │ ├── BinaryFormaterSerializer.cs
│ │ ├── DataPadder.cs
│ │ ├── DataProcessor.cs
│ │ ├── DataSerializer.cs
│ │ ├── DataSerializerProcessorAttribute.cs
│ │ ├── DPSManager.cs
│ │ ├── ExplicitSerializer.cs
│ │ ├── NullSerializer.cs
│ │ ├── RijndaelPSKEncrypter.cs
│ │ └── SevenZipLZMACompressor
│ │ ├── Common
│ │ │ ├── CommandLineParser.cs
│ │ │ ├── CRC.cs
│ │ │ ├── InBuffer.cs
│ │ │ └── OutBuffer.cs
│ │ ├── LZ
│ │ │ ├── LzBinTree.cs
│ │ │ ├── LzInWindow.cs
│ │ │ └── LzOutWindow.cs
│ │ ├── LzmaBase.cs
│ │ ├── LZMACompressor.cs
│ │ ├── LzmaDecoder.cs
│ │ ├── LzmaEncoder.cs
│ │ ├── RangeCoder
│ │ │ ├── RangeCoderBit.cs
│ │ │ ├── RangeCoderBitTree.cs
│ │ │ └── RangeCoder.cs
│ │ └── SevenZipHelper.cs
│ ├── Exception.cs
│ ├── NetworkComms.cs
│ ├── NetworkCommsDotNet.csproj
│ ├── networkcomms.net.snk
│ ├── packages.config
│ ├── Packet.cs
│ ├── PacketHeader.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ReservedPacketType.cs
│ ├── RuntimeEnvironment.cs
│ ├── SendReceiveOptions.cs
│ └── Tools
│ ├── Adler32.cs
│ ├── CommsMath.cs
│ ├── CommsThreadPool.cs
│ ├── DOSProtection.cs
│ ├── HostInfo.cs
│ ├── ILogger.cs
│ ├── IPTools.cs
│ ├── LogTools.cs
│ ├── MD5.cs
│ ├── PacketBuilder.cs
│ ├── PacketUnwrappers.cs
│ ├── PeerDiscovery.cs
│ ├── PriorityQueue.cs
│ ├── PriorityQueueItem.cs
│ ├── QueueItemPriority.cs
│ ├── ShortGUID.cs
│ ├── SSLTools.cs
│ ├── StreamTools.cs
│ └── XPlatformHelper
│ ├── AddressFamily.cs
│ ├── DateTimeExtenensions.cs
│ ├── EndPoint.cs
│ ├── IPAddress.cs
│ ├── IPEndPoint.cs
│ ├── IPv6Address.cs
│ ├── SocketAddress.cs
│ ├── SocketError.cs
│ ├── SocketException.cs
│ └── WaitCallback.cs
├── NetworkCommsDotNet.sln
├── NetworkCommsLogo.ico
├── networkcomms.net.snk
├── NOTICE
├── Platforms
│ ├── Net20
│ │ └── MergedDllBuild
│ │ ├── app.config
│ │ ├── MergedDllBuild.csproj
│ │ ├── packages.config
│ │ ├── Program.cs
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── Net35
│ │ ├── MergedDllBuild
│ │ │ ├── app.config
│ │ │ ├── MergedDllBuild.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── NetworkCommsDotNet
│ │ │ ├── NetworkCommsDotNet.csproj
│ │ │ ├── networkcomms.net.snk
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── ProtobufSerializer
│ │ │ ├── networkcomms.net.snk
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── ProtobufSerializer.csproj
│ │ ├── QuickLZCompressor
│ │ │ ├── networkcomms.net.snk
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── QuickLZCompressor.csproj
│ │ └── SharpZipLibCompressor
│ │ ├── networkcomms.net.snk
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── SharpZipLibCompressor.csproj
│ ├── Net40
│ │ ├── JSONSerializer
│ │ │ ├── JSONSerializer.cs
│ │ │ ├── JSONSerializer.csproj
│ │ │ ├── networkcomms.net.snk
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── MergedDllBuild
│ │ │ ├── MergedDllBuild.csproj
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── NetworkCommsDotNet
│ │ │ ├── NetworkCommsDotNet.csproj
│ │ │ ├── networkcomms.net.snk
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── ProtobufSerializer
│ │ │ ├── networkcomms.net.snk
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── ProtobufSerializer.csproj
│ │ ├── QuickLZCompressor
│ │ │ ├── networkcomms.net.snk
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── QuickLZCompressor.csproj
│ │ └── SharpZipLibCompressor
│ │ ├── networkcomms.net.snk
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── SharpZipLibCompressor.csproj
│ ├── WinRT
│ │ ├── ExamplesChat.WinRT
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── Assets
│ │ │ │ ├── Logo.png
│ │ │ │ ├── SmallLogo.png
│ │ │ │ ├── SplashScreen.png
│ │ │ │ └── StoreLogo.png
│ │ │ ├── ChatAppBase.cs
│ │ │ ├── ChatAppWinRT.cs
│ │ │ ├── ChatMessage.cs
│ │ │ ├── Common
│ │ │ │ ├── BindableBase.cs
│ │ │ │ ├── BooleanNegationConverter.cs
│ │ │ │ ├── BooleanToVisibilityConverter.cs
│ │ │ │ ├── LayoutAwarePage.cs
│ │ │ │ ├── ReadMe.txt
│ │ │ │ ├── RichTextColumns.cs
│ │ │ │ ├── StandardStyles.xaml
│ │ │ │ └── SuspensionManager.cs
│ │ │ ├── ExamplesChat.WinRT.csproj
│ │ │ ├── ExamplesChat.WinRT_TemporaryKey.pfx
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── Package.appxmanifest
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── JSONSerializer
│ │ │ ├── JSONSerializer.csproj
│ │ │ ├── networkcomms.net.snk
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── NetworkCommsDotNet
│ │ │ ├── NetworkCommsDotNet.csproj
│ │ │ ├── networkcomms.net.snk
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── ProtobufSerializer
│ │ ├── networkcomms.net.snk
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── ProtobufSerializer.csproj
│ ├── WP8
│ │ ├── ExamplesChat.WP8
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── Assets
│ │ │ │ ├── AlignmentGrid.png
│ │ │ │ ├── ApplicationIcon.png
│ │ │ │ └── Tiles
│ │ │ │ ├── FlipCycleTileLarge.png
│ │ │ │ ├── FlipCycleTileMedium.png
│ │ │ │ ├── FlipCycleTileSmall.png
│ │ │ │ ├── IconicTileMediumLarge.png
│ │ │ │ └── IconicTileSmall.png
│ │ │ ├── ChatAppBase.cs
│ │ │ ├── ChatAppWP8.cs
│ │ │ ├── ChatMessage.cs
│ │ │ ├── ExamplesChat.WP8.csproj
│ │ │ ├── Icon@2x.png
│ │ │ ├── Icon.png
│ │ │ ├── LocalizedStrings.cs
│ │ │ ├── MainPage.xaml
│ │ │ ├── MainPage.xaml.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ ├── AppManifest.xml
│ │ │ │ ├── AssemblyInfo.cs
│ │ │ │ └── WMAppManifest.xml
│ │ │ ├── Resources
│ │ │ │ ├── AppResources.Designer.cs
│ │ │ │ └── AppResources.resx
│ │ │ ├── SettingsPage.xaml
│ │ │ └── SettingsPage.xaml.cs
│ │ ├── JSONSerializer
│ │ │ ├── JSONSerializer.csproj
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── NetworkCommsDotNet
│ │ │ ├── NetworkCommsDotNet.csproj
│ │ │ ├── packages.config
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── ProtobufSerializer
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ └── ProtobufSerializer.csproj
│ ├── Xamarin.Android
│ │ ├── ExamplesChat.Android
│ │ │ ├── Assets
│ │ │ │ └── AboutAssets.txt
│ │ │ ├── ChatAppAndroid.cs
│ │ │ ├── ChatAppBase.cs
│ │ │ ├── ChatMessage.cs
│ │ │ ├── ExamplesChat.Android.csproj
│ │ │ ├── MainActivity.cs
│ │ │ ├── NetworkCommsSettings.cs
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ ├── AndroidManifest.xml
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Resources
│ │ │ ├── AboutResources.txt
│ │ │ ├── Drawable
│ │ │ │ └── Icon.png
│ │ │ ├── Layout
│ │ │ │ └── Main.axml
│ │ │ ├── Menu
│ │ │ │ └── settings.xml
│ │ │ ├── Resource.Designer.cs
│ │ │ └── Values
│ │ │ ├── arrays.xml
│ │ │ └── Strings.xml
│ │ ├── MergedDllBuild
│ │ │ ├── MergedDllBuild.csproj
│ │ │ ├── networkcomms.net.snk
│ │ │ ├── packages.config
│ │ │ ├── Program.cs
│ │ │ └── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── NetworkCommsDotNet
│ │ │ ├── NetworkCommsDotNet.csproj
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ └── Resources
│ │ │ ├── AboutResources.txt
│ │ │ ├── Resource.Designer.cs
│ │ │ └── Values
│ │ │ └── Strings.xml
│ │ ├── ProtobufSerializer
│ │ │ ├── packages.config
│ │ │ ├── Properties
│ │ │ │ └── AssemblyInfo.cs
│ │ │ ├── ProtobufSerializer.csproj
│ │ │ └── Resources
│ │ │ ├── AboutResources.txt
│ │ │ ├── Resource.Designer.cs
│ │ │ └── Values
│ │ │ └── Strings.xml
│ │ └── SharpZipLibCompressor
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources
│ │ │ ├── AboutResources.txt
│ │ │ ├── Resource.Designer.cs
│ │ │ └── Values
│ │ │ └── Strings.xml
│ │ └── SharpZipLibCompressor.csproj
│ └── Xamarin.iOS
│ ├── ExamplesChat.iOS
│ │ ├── AppDelegate.cs
│ │ ├── ChatAppBase.cs
│ │ ├── ChatAppiOS.cs
│ │ ├── ChatMessage.cs
│ │ ├── ChatWindow.cs
│ │ ├── ChatWindow.designer.cs
│ │ ├── ExamplesChat.iOS.csproj
│ │ ├── Info.plist
│ │ ├── Main.cs
│ │ ├── MainStoryboard.storyboard
│ │ ├── packages.config
│ │ ├── Properties
│ │ │ └── AssemblyInfo.cs
│ │ ├── Resources
│ │ │ ├── Icon@2x.png
│ │ │ └── Icon.png
│ │ ├── Settings.cs
│ │ └── Settings.designer.cs
│ ├── MergedDllBuild
│ │ ├── MergedDllBuild.csproj
│ │ ├── networkcomms.net.snk
│ │ ├── packages.config
│ │ ├── Program.cs
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ ├── NetworkCommsDotNet
│ │ ├── NetworkCommsDotNet.iOS.csproj
│ │ ├── networkcomms.net.snk
│ │ └── Properties
│ │ └── AssemblyInfo.cs
│ └── ProtobufSerializer
│ ├── networkcomms.net.snk
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ └── ProtobufSerializer.iOS.csproj
├── ProtobufSerializer
│ ├── networkcomms.net.snk
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── ProtobufSerializer.cs
│ └── ProtobufSerializer.csproj
├── QuickLZCompressor
│ ├── Dlls
│ │ ├── quicklz150_32_1.dll
│ │ └── quicklz150_64_1.dll
│ ├── networkcomms.net.snk
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── QuickLZCompressor.csproj
│ └── QuickLZ.cs
├── README.md
├── RemoteProcedureCalls
│ ├── Client.cs
│ ├── networkcomms.net.snk
│ ├── packages.config
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── RemoteProcedureCalls.csproj
│ ├── RPCException.cs
│ ├── Server.cs
│ └── Wrappers.cs
└── SharpZipLibCompressor
├── Dlls
│ └── ICSharpCode.SharpZipLib.dll
├── networkcomms.net.snk
├── Properties
│ └── AssemblyInfo.cs
├── SharpZipLibCompressor.csproj
└── SharpZipLibGzipCompressor.cs
123 directories, 402 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论