社区
通信技术
帖子详情
关于WSAWaitForMultipleEvents函数
Crystal_V
2009-08-05 01:54:34
如果等待多个事件对象的情况下
我们都知道此函数的第二个函数是event的句柄数组,第一个参数是数组的大小
如果数组大小大于实际的event句柄数组大小,有没有问题?
比如event的数组 只有event[0]这么一个元素
但我把WSAWaitForMultipleEvents第一个参数设为2
...全文
96
回复
打赏
收藏
关于WSAWaitForMultipleEvents函数
如果等待多个事件对象的情况下 我们都知道此函数的第二个函数是event的句柄数组,第一个参数是数组的大小 如果数组大小大于实际的event句柄数组大小,有没有问题? 比如event的数组 只有event[0]这么一个元素 但我把WSAWaitForMultipleEvents第一个参数设为2
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
一个ftp服务器源码,很不错的东西
不错的ftp服务器源码,界面很不错。 //工作者线程处理
函数
UINT ProcessTreadIO(LPVOID lpParameter) { DWORD dwFlags; LPSOCKET_INF pSI; DWORD dwBytesTransferred; DWORD i; CServer * server=(CServer*)lpParameter; //处理异步的
WSA
Send,
WSA
Recv等请求等 while(TRUE) { if ((g_index =
WSA
Wait
For
Multiple
Events
(g_dwEventTotal, g_
events
, FALSE,
WSA
_INFINITE, FALSE)) ==
WSA
_
WAIT
_FAILED) { printf("错误:
WSA
Wait
For
Multiple
Events
failed %d\n",
WSA
GetLastError()); return 0; } if ((g_index -
WSA
_
WAIT
_EVENT_0) == 0) {
WSA
ResetEvent(g_
events
[0]); continue; } pSI = g_sockets[g_index -
WSA
_
WAIT
_EVENT_0];
WSA
ResetEvent(g_
events
[g_index -
WSA
_
WAIT
_EVENT_0]); if (
WSA
GetOverlappedResult(pSI->s, &(pSI->o), &dwBytesTransferred, FALSE, &dwFlags) == FALSE || dwBytesTransferred == 0) { printf("Closing socket %d\n", pSI->s); if (closesocket(pSI->s) == SOCKET_ERROR) { printf("错误:closesocket() failed with error %d\n",
WSA
GetLastError()); } GlobalFree(pSI);
WSA
CloseEvent(g_
events
[g_index -
WSA
_
WAIT
_EVENT_0]); // Cleanup g_sockets and g_
events
by removing the socket event handle // and socket information structure if they are not at the end of the // arrays. EnterCriticalSection(&g_cs); if ((g_index -
WSA
_
WAIT
_EVENT_0) + 1 != g_dwEventTotal) for (i = g_index -
WSA
_
WAIT
_EVENT_0; i < g_dwEventTotal; i++) { g_
events
[i] = g_
events
[i + 1]; g_sockets[i] = g_sockets[i + 1]; } g_dwEventTotal--; LeaveCriticalSection(&g_cs); continue;
WSA
Wait
For
Multiple
Events
WSA
EventS
elect模型
WSA
EventS
elect模型是Windows socekts提供的另一个有用异步IO模型。该模型允许在一个或多个套接字上接收以事件为基础的网络事件通知。Windows sockets应用程序可以通过调用
WSA
EventS
elect
函数
,将一个事件与网络事件集合关联起来。当网络事件发生时,应用程序以事件的形式接收网络事件通知。
WinsockAPI值
WSA
Wait
For
Multiple
Events
函数
DWORDD
WSA
Wait
For
Multiple
Events
( DWORD c
Events
, const
WSA
EVENT *lph
Events
, BOOL f
Wait
All, DWORD dwTimeout, BOOL fAlertable ) c
Events
:lph
Events
所指事件对象举兵数组中的数目,事件对象句柄的数目最大值
WSA
_MAXIMUM_WA
WSA
Wait
For
Multiple
Events
Function
WSA
Wait
For
Multiple
Events
Function The
WSA
Wait
For
Multiple
Events
function returns when one or all of the specified event objects are in the signaled state, when the time-out interval expires, or wh
WSA
Wait
For
Multiple
Events
()
简述:只要指定事件对象中的一个或全部处于有信号状态,或者超时间隔到,则返回。 #include DWORD
WSA
API
WSA
Wait
For
Multiple
Events
( DWORD c
Events
, const
WSA
EVENT FAR * lph
Events
, BOOL f
Wait
All, DWORD dwTimeout, BOOL fAlertab
通信技术
4,356
社区成员
28,926
社区内容
发帖
与我相关
我的任务
通信技术
通信技术相关讨论
复制链接
扫一扫
分享
社区描述
通信技术相关讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章