Windows 网络编程(2)--重叠I/0模型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Windows 网络编程(2)--重叠I/0模型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1492字,纯文字阅读大概需要3分钟。
内容图文
5).重叠I/O模式(overlapped)
常用函素:
1.WSASocket : 创建套接字
2.TCP
WSASend
WSARecv
3.UDP:
WSASendTo
WSARecvFrom
4.AccepEx (Mswsock.lib库导出)
WSAIoctl
5.数据类型
WSAOVERLAPPED (wsaoverlapped)
函数: WSAGetOverlappedResult
使用:
缓冲区对象
typedef struct _BUFFER_OBJ
{
OVERLAPPED ol; // 重叠结构char *buff; // send/recv/AcceptEx所使用的缓冲区int nLen; // buff的长度
PSOCKET_OBJ pSocket; // 此I/O所属的套节字对象int nOperation; // 提交的操作类型#define OP_ACCEPT 1#define OP_READ 2#define OP_WRITE 3
SOCKET sAccept; // 用来保存AcceptEx接受的客户套节字(仅对监听套节字而言)
_BUFFER_OBJ *pNext;
} BUFFER_OBJ, *PBUFFER_OBJ;
1.定义全局数据
HANDLE g_events[WSA_MAXIMUM_WAIT_EVENTS]; // I/O事件句柄数组
int g_nBufferCount; // 上数组中有效句柄数量
PBUFFER_OBJ g_pBufferHead, g_pBufferTail; // 记录缓冲区对象组成的表的地址
2.申请缓冲区
PBUFFER_OBJ GetBufferObj(PSOCKET_OBJ pSocket, ULONG nLen)
3. 释放缓冲区
void FreeBufferObj(PBUFFER_OBJ pBuffer)
4.根据受信事件对象的句柄,查找对应的BUFFER_OBJ
PBUFFER_OBJ FindBufferObj(HANDLE hEvent)
5.更新事件句柄数组g_events
void RebuildArray()
6.接收发送
接收连接的BUFFER_OBJ对象.使用的函数: PostAccept
接收数据的BUFFER_OBJ对象.使用的函数: PostRecv
发送数据的BUFFER_OBJ对象.使用的函数: PostSend
实现步骤:
1. 设置I/O类型,增加套节字上的重叠I/O计数
2. 投递此重叠I/O
7.I/O请求完成之后, 处理它的函数是HandleI/O
8.main主函数
a)创建监听套接字.投递监听I/0
b)循环处理I/0事件
整理自(Windows网络与通信程序设计, 王艳平)
代码地址: http://download.csdn.net/detail/zhaoyc_59211/192329
原文:http://blog.csdn.net/xingkongyingke/article/details/45228193
内容总结
以上是互联网集市为您收集整理的Windows 网络编程(2)--重叠I/0模型全部内容,希望文章能够帮你解决Windows 网络编程(2)--重叠I/0模型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。