完美发送大对象可用于.NetCompact Framework 及 .Net Framework的Socket库

第一次在这里发贴,请大家多多关照.本次发贴的目的有三:一是为了和交流;二是共同学习;三是虚心请教.废话不说了.直接进入正题:

以前也做过一些Socket方面的项目不过一直没有很好的解决发送大对象的问题.在网上也找到不少这方面的资料.不过大多是指出一些思路或是用于文件传输的.要么没有直观的代码和框架. 要么不便于扩展.终于鼓起勇气自己写了一下.当然也参考了不少资料,其中有不少是从codeproject搜索到的.

先来看看该库都涉及哪些类


最主要的类有三个
SocketConnection:用于存储连接信息及收发数据
SocketConnectionHost:用于管理连接,可由他派生出服务类和客户类
SocketConnectionCreator:连接创建器.已由该类派生出监听类和连接类

对象传送原理:
建立连接后
发送方->传送信息头并等待接收方应答(超时则发送失败)
  发送方->循环传送信息片段等待接收方应答(超时则发送失败)

接收方->等待信息头(无限等待)
接收方->收到信息头,应答发送方,开始等待信息片段(超时则发送失败)

支持5个基本事件
Connected 新连接加入
Disconnected 连接断开
Received 收到来自某连接的信息
Sent 信息已发送
Exception 发生异常
基本使用方法
client.AddConnector("8888", new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8888), 3, 3000); 
client.Start();

server.AddListener("8888", new IPEndPoint(IPAddress.Any, 8888)); 
server.Start();



var string = "sdfsdfdf";
connection.BeginSend(Encoding.UTF8.GetBytes(string));
  注:connection 是在Connected事件中取得


转载于:https://www.cnblogs.com/niijyeni/archive/2009/09/17/1568517.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值