C#模拟IOCP异步通信框架
小头结构的 C# IOCP 服务端写起来其实没你想的那么麻烦,用这个模拟完成端口的 Demo 挺顺手的。数据长度是小端格式(低位在前),适合 X86 那类平台,跨平台的就要注意兼容性了。命名用的是匈牙利风格,像dwLength
、strCommand
那种,看起来挺直观的。
命令解析不区分大小写,顺序也不限,这对后期扩展协议友好。你不必纠结先写哪个命令,只要写了能识别的格式都行,调试起来也方便不少。整体设计蛮灵活的,适合想自己封装 Socket 通讯协议的同学练手。
IOCP 的重点在异步性能,用 C#封装的好处就是省心,写起来更轻量。如果你想深入 IOCP 机制,可以看看这个封装库:IOCP C# 封装库,里面代码也清晰。
另外,涉及通讯协议封装的话,推荐顺带读一读这个:C#自定义 Socket 通讯协议封装,会更清楚怎么设计报文结构、怎么拆包粘包。
顺带一提,命名习惯上不妨看看C# 命名规范指南.doc,写大项目的时候,统一风格真的蛮重要的。
如果你打算做跨平台协议,或者写一些嵌入式接口,建议也看看基于 ARM C library 的 USB 通讯协议实现,会对你了解通信协议的底层更有。
2.96MB
文件大小:
评论区