zoukankan      html  css  js  c++  java
  • 油槽

    // 07 邮槽-服务端.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include <windows.h>
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        HANDLE 
            hSlot = CreateMailslot(L"\\.\mailslot\mail",
            0,
            MAILSLOT_WAIT_FOREVER,         // 无超时 
            (LPSECURITY_ATTRIBUTES)NULL);  // 安全属性
        while (true) {
            // 2.1 获取邮槽消息数量
            DWORD dwMsgCount = 0, dwMsgSize = 0;
            GetMailslotInfo(     /* 获取邮槽信息 */
                hSlot,                   // 邮槽句柄 
                (LPDWORD)NULL,// 无最大消息限制
                &dwMsgSize,      // 下一条消息的大小
                &dwMsgCount,     // 消息的数量
                (LPDWORD)NULL);// 无时限
            if (dwMsgSize == MAILSLOT_NO_MESSAGE) {
                Sleep(2000);
                continue;
            }
            else
            {
                // 2.2 循环获取全部消息(有可能不只一条)
                while (dwMsgCount)
                {
                    PBYTE lpBuffer;
                    lpBuffer = new BYTE[dwMsgSize + 0x10];
                    // 读取邮槽中的信息
                    DWORD dwRet;
                    ZeroMemory(lpBuffer, dwMsgSize);
                    if (!ReadFile(hSlot, lpBuffer, dwMsgSize, &dwRet, NULL))
                    {
                        printf("ReadFile函数执行失败,错误码:%d.
    ", GetLastError());
                        delete[] lpBuffer;
                        return 0;
                    }
                    // 显示信息
                    printf("邮槽的内容: %s
    ", lpBuffer);
                    // 计算剩余的消息数
                    GetMailslotInfo(hSlot, (LPDWORD)NULL, &dwMsgSize, &dwMsgCount, nullptr);
                    delete[] lpBuffer;
                    dwMsgCount--;
                }
            }
        }
        return 0;
    }
    // 07 邮槽-客户端.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #include <windows.h>
    
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        HANDLE hMail = CreateFile(L"\\.\mailslot\mail", 
            GENERIC_WRITE,      // 读写属性
            FILE_SHARE_READ,       // 共享属性
            NULL,                       // 安全属性
            OPEN_EXISTING,      // 打开方式
            FILE_ATTRIBUTE_NORMAL,      // 标志位
            NULL);                     // 文件模板(默认留空)
        DWORD dwSize = 0;
        WriteFile(hMail, "Hello", 12, &dwSize, NULL);
    
        CloseHandle(hMail);
    
        return 0;
    }
    让数据变得更安全!
  • 相关阅读:
    ES6 fetch函数与后台交互
    玩转HTML5移动页面(动效篇)
    使用Flexible实现手淘H5页面的终端适配
    简单判断是否是微信打开页面代码
    移动端JS 触摸事件基础
    移动端中如何检测设备方向的变化?
    JS禁止横竖屏切换,强制横竖屏显示
    移动端Web开发如何处理横竖屏
    关于手机端CSS Sprite图标定位的一些领悟
    移动web页面使用微软雅黑字体的问题
  • 原文地址:https://www.cnblogs.com/Alyoyojie/p/5304601.html
Copyright © 2011-2022 走看看