进程/网络通信之邮槽Mailslot的实现原理与核心逻辑

[复制链接]
查看: 3542|回复: 31
发表于 2023-2-18 22:44:59 | 显示全部楼层 | 阅读模式
注意:邮槽只能实现单向通信。
第一部分:服务端创建邮槽写入数据
void CMailslotSDlg::OnBnClickedButtonRecv()
{
        // TODO: 在此添加控件通知处理程序代码

        m_btnRecv.EnableWindow(false);
        m_btnRecv.SetWindowTextW(_T("等待数据到来..."));
        //创建邮槽
        HANDLE hMailslot;
        hMailslot=CreateMailslot(_T("\\\\.\\mailslot\\MyMailsolt"),0,MAILSLOT_WAIT_FOREVER,NULL);
        if(!hMailslot){
        AfxMessageBox(_T("创建邮槽失败"));
        m_btnRecv.EnableWindow(true);
        m_btnRecv.SetWindowTextW(_T("接收"));
        return;
        }

        //读取数据
        TCHAR buf[400];
        ZeroMemory(buf,400);
        DWORD dwRead;
        if(!ReadFile(hMailslot,buf,400,&dwRead,NULL)){
        AfxMessageBox(_T("读取数据失败"));
        m_btnRecv.EnableWindow(true);
        m_btnRecv.SetWindowTextW(_T("接收"));
        CloseHandle(hMailslot);
        return;
        };

        //写入编辑框
        SetDlgItemText(IDC_EDIT_RECV,buf);
        CloseHandle(hMailslot);
        m_btnRecv.EnableWindow(true);
        m_btnRecv.SetWindowTextW(_T("接收"));
}


第二部分:客户端读取邮槽中的数据

void CMailslotCDlg::OnBnClickedButtonSend()
{
        // TODO: 在此添加控件通知处理程序代码
        HANDLE hMailslot;
        hMailslot=CreateFile(_T("\\\\.\\mailslot\\MyMailsolt"),GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
        if(hMailslot==INVALID_HANDLE_VALUE){
                AfxMessageBox(_T("打开邮槽失败"));
                return;
        }
        //写邮槽数据
        TCHAR buf[400];
        ZeroMemory(buf,400);
        GetDlgItemText(IDC_EDIT_SEND,buf,400);
        DWORD dwWrite;
        if(!WriteFile(hMailslot,buf,400,&dwWrite,NULL)){
        AfxMessageBox(_T("写邮槽数据失败"));
        CloseHandle(hMailslot);
        return;
        };

        CloseHandle(hMailslot);

}




实现效果:
服务端点击接收按钮等待客户端发送数据的到来,数据到来后写入到编辑框中。

进程/网络通信之邮槽Mailslot的实现原理与核心逻辑

以上代码生成的可执行文件:

进程/网络通信之邮槽Mailslot的实现原理与核心逻辑 点击此处下载

MailslotC.zip

72.4 KB

[ 72.4 KB, ,2023-2-18 22:44 上传 ]
[充值金币]
易博软件介绍
发表于 2023-2-20 21:45:45 | 显示全部楼层
说得好,学计算机学的不仅仅是计算机,好的数学基础也是必不可少的

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-2-21 10:53:58 | 显示全部楼层
其实很多人都懂编程,但不是很精通。我也没有找到工作。我可那还没有你精。我是说VC。  我学VB4年了。我QQ162252487。
发表于 2023-2-21 23:58:53 | 显示全部楼层
确实不错!很负责哟!   

0

主题

20

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-2-22 14:04:14 | 显示全部楼层
不错,这篇文章

0

主题

21

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-2-24 14:23:51 | 显示全部楼层
写得真好,是学习的榜样  在失败中认识自己,在失败中寻找自己,在失败中战胜自己.  你的故事给我的感受就是:我们是菜,但我们一定能做的更好

0

主题

22

帖子

12

积分

营销入门

Rank: 2

积分
12
发表于 2023-2-25 10:32:11 | 显示全部楼层
我 是刚学这门课的,当我看到这以后,震惊了,一个程序的设计是如此的复杂,我想我也是时候奋斗了,愿所有的程序设计人员都能步入高手之列      突想起伯苓师的一句话“中国不亡有我在” 奋发图强,创造中国人的辉煌

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-2-26 05:39:35 | 显示全部楼层
不错!

0

主题

9

帖子

5

积分

营销入门

Rank: 2

积分
5
发表于 2023-2-27 01:47:56 | 显示全部楼层
谢谢!  人的一生中,能够多遇上几个这样的人,那么世界上很多很多的人,将会少走很多很多的路。

0

主题

12

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-2-28 21:54:38 | 显示全部楼层
谢谢你们的留言 ,我看过深感领悟,想不到能在网上看到一些原本上书本看不到的东西。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|Archiver|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表