windows油槽通信

// 10.邮槽-客户端.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>
int _tmain(int argc, _TCHAR* argv[])
{
    //1.打开邮槽对象
    HANDLE hFile = CreateFile(
        L"\\\\DESKTOP-NJCBKNB\\mailslot\\sample", // 邮槽名称
        GENERIC_WRITE,      // 读写属性
        FILE_SHARE_READ,       // 共享属性
        NULL,                       // 安全属性
        OPEN_EXISTING,      // 打开方式
        FILE_ATTRIBUTE_NORMAL,      // 标志位
        NULL);                     // 文件模板(默认留空)
                                   // 2. 向mailslot写入
    DWORD  dwWritten;
    LPSTR  lpMessage = "邮槽测试消息!";
    DWORD  dwMegLen = strlen(lpMessage) + sizeof(CHAR);
    WriteFile(hFile, lpMessage, dwMegLen, &dwWritten, NULL);
    // 3. 结束
    printf("已经向邮槽写入信息!\n");
    CloseHandle(hFile);
    return 0;
}

==================

// 09.邮槽-服务器.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <windows.h>

int main()
{
    HANDLE hMailSlot = CreateMailslot(
        L"\\\\.\\mailslot\\sample",// 邮槽名
        0,// 无最大消息限制
        MAILSLOT_WAIT_FOREVER,// 永不超时
        NULL
    );
    while (true)
    {
        DWORD dwCount = 0, dwSize = 0;
        GetMailslotInfo(
            hMailSlot,// 邮槽名
            NULL,// 无最大消息限制
            &dwSize,// 下一条消息大小
            &dwCount,// 消息个数
            NULL);// 永不超时
        if (dwSize == MAILSLOT_NO_MESSAGE)
        {
            Sleep(200);// 暂时没有消息
            continue;
        }
        while (dwCount)
        {
            PBYTE pBuf = new BYTE[dwSize+10]{};
            ReadFile(hMailSlot, pBuf, dwSize, &dwSize, NULL);
            printf("%s\n", pBuf);
            GetMailslotInfo(hMailSlot, 0, &dwSize, &dwCount, NULL);
            delete[] pBuf;
        }
    }
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom阅读 7,753评论 0 3
  • =========== ==================== ========================...
    MagicalGuy阅读 4,073评论 0 0
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,906评论 0 2
  • 消息,事件,完成端口 =================== =========================
    MagicalGuy阅读 3,345评论 0 0
  • 一开始你是我的秘密。我怕你知道,又怕你不知道,又怕你装作不知道。你不说,我不说,又远又近。 喜欢仿佛是一个人与生俱...
    糖甜甜sweet阅读 1,409评论 0 0

友情链接更多精彩内容