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;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,719評論 0 3
  • =========== ==================== ========================...
    MagicalGuy閱讀 758評論 0 0
  • 在C語言中,五種基本數據類型存儲空間長度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來閱讀 3,392評論 0 2
  • 消息,事件,完成端口 =================== =========================
    MagicalGuy閱讀 495評論 0 0
  • 一開始你是我的秘密。我怕你知道,又怕你不知道,又怕你裝作不知道。你不說,我不說,又遠又近。 喜歡仿佛是一個人與生俱...
    糖甜甜sweet閱讀 176評論 0 0