// 005_邮槽_服务端.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <windows.h>#include <stdio.h>int main(){ // 1. 创建一个_邮槽_服务端 HANDLE hMailslot; // '\\\\.\\' 表示当前主机, 如果想要连接到其它主机 // 可以将.换成ip地址. // mailslot - 邮槽的关键字 hMailslot = CreateMailslot( L"\\\\.\\mailslot\\韦老师的邮槽", 0, -1, NULL); // 建立死循环来等待其它进程将信息投递到邮槽 DWORD msgSize = 0; DWORD nextMsgSize = 0; DWORD msgCount = 0; DWORD readTimeout =0; BOOL ret = 0; while ( 1 ) { // 等待邮槽的消息 ret=GetMailslotInfo(hMailslot, &msgSize,/*消息的字节数*/ &nextMsgSize,/*下一条消息的字节数*/ &msgCount,/*邮槽里面总共有几条消息*/ &readTimeout/*读取消息的超时时间*/); if ( !ret) { continue; } if ( msgCount == 0) { Sleep(100); continue; } // 知道了邮槽里面的消息占多少字节之后 // 就可以申请堆空间 // 来将邮槽内的信息读取出来. char* pBuff = new char[nextMsgSize + 1]; memset(pBuff, 0, nextMsgSize + 1); // 使用ReadFile来读取邮槽里面的内容 ReadFile(hMailslot, pBuff, nextMsgSize, &msgSize, 0); printf("服务端> %s\n", pBuff); delete[] pBuff; }}