套接字事件

套接字事件




#include <IOSTREAM>
#include <WINDOWS.H>


using namespace std;






//进程内部 线程通知   --->异步 ->同步
UINT32  __stdcall CallBack(LPVOID lParam); 


HANDLE g_Event[2] = {0};


void main()
{




g_Event[0] = CreateEvent(NULL,TRUE,FALSE,NULL);   //匿名 手动 未授信
g_Event[1] = CreateEvent(NULL,TRUE,FALSE,NULL);   //匿名 手动 未授信




HANDLE ThreadHandle = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)CallBack, NULL,0,NULL);


int i = 0;
for (i=0;i<20;i++)
{
printf("Main()\r\n");


if (i==3)
{
//通知事件A  等待事件B
SetEvent(g_Event[0]);    //NO  --->Yes    
//ResetEvent(g_Event[0]);  //Yes --->No


WaitForSingleObject(g_Event[1],INFINITE);
//Sleep(1);
}



}


Sleep(INFINITE);


}


UINT32 __stdcall CallBack(LPVOID lParam)
{


int i = 0;
    //等待事件A授信  


WaitForSingleObject(g_Event[0],INFINITE); //Yes--->No
/*for (i=0;i<100000;i++)
{
printf("SubMain()\r\n");
}*/
printf("SubMain()\r\n");
WaitForSingleObject(g_Event[0],INFINITE);
printf("SubMain()\r\n");


SetEvent(g_Event[1]);


return 0;
}




globalalloc virtualalloc 虚拟内存  heapalloc  堆进程


PSOCKET_OBJECT GetSocketObject(SOCKET Socket)
{


//申请套接字对象
PSOCKET_OBJECT SocketObject = (PSOCKET_OBJECT)GlobalAlloc(GPTR, sizeof(SOCKET_OBJECT));  //#define GPTR                (GMEM_FIXED | GMEM_ZEROINIT)
if(SocketObject != NULL)
{
SocketObject->Socket = Socket;
}
return SocketObject;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值