美文网首页
windows油槽通信

windows油槽通信

作者: MagicalGuy | 来源:发表于2018-10-07 14:29 被阅读0次
    // 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;
    }
    

    相关文章

      网友评论

          本文标题:windows油槽通信

          本文链接:https://www.haomeiwen.com/subject/skblaftx.html