networkComms.net2.3.1开源版本,基于gpl V3协议。因为不能公开3.x版本的源码,所以基于此版本进行学习。3.X版本进行了诸多改进和Bug修复,使用方法上两者相差不大。
/*请注意使用以下代码,需遵循GplV3协议*/
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace DPSBase
{
/// 发送全部或者部分数据流
public class StreamSendWrapper : IDisposable
{
object streamLocker = new object();
public ThreadSafeStream ThreadSafeStream { get; set; }
public long Start { get; private set; }
public long Length { get; private set; }
public StreamSendWrapper(ThreadSafeStream stream)
{
this.ThreadSafeStream = stream;
this.Start = 0;
this.Length = stream.Length;
}
public StreamSendWrapper(ThreadSafeStream stream, long start, long length)
{
if (start < 0)
throw new Exception("Provided start value cannot be less than 0.");
if (length < 0)
throw new Exception("Provided length value cannot be less than 0.");
this.ThreadSafeStream = stream;
this.Start = start;
this.Length = length;
}
/// <summary>
/// Return the MD5 for the specific part of the stream only.
/// 返回数据流指定部分的MD5值
/// </summary>
/// <returns></returns>
public string MD5CheckSum()
{
using (MemoryStream ms = new MemoryStream())
{
ThreadSafeStream.CopyTo(ms, Start, Length, 8000);
#if WINDOWS_PHONE
using(var md5 = new DPSBase.MD5Managed())
{
#else
using (var md5 = System.Security.Cryptography.MD5.Create())
{
#endif
return BitConverter.ToString(md5.ComputeHash(ms)).Replace("-", "");
}
}
}
public void Dispose()
{
ThreadSafeStream.Dispose();
}
}
}
http://www.cnblogs.com/networkcomms
http://www.networkcoms.cn 编辑
来自英国剑桥的c#网络通讯框架 开源版本: networkcomms2.3.1 可以进入此页面下载 networkcomms网络通讯框架学习
【开源下载】基于TCP网络通信的即时聊天系统(IM系统)(c#源码)
[源码下载]Demo2.模拟简单登陆-效果图 基于networkcomms2.3.1
[源码下载]Demo1 客户端从服务器获取信息(基于networkcomms2.3.1)
【开源下载】基于TCP网络通信的自动升级程序c#源码