不看会后悔的.如果喜欢,记得评论哦~ https://github.com/HunkSmile/Swift.git
不看会后悔的.如果喜欢,记得评论哦~ https://github.com/HunkSmile/Swift.git
不看会后悔的.如果喜欢,记得评论哦~ https://github.com/HunkSmile/Swift.git
正文 下面我们来利用命名管道来创建我们进程间的通信: 第一步:我们来建立一个MFC的基于的单文档的应用程序 第二步:我们在我们的资源里面的菜单中建立我们需要的菜单项,并对其建立命令消息响应 第三步:我们来建立一个成员变量用来存放我们的句柄,并在构造函数中对其进行初始化,在析构函数中将其释放 CNamedpipeView::CNamedpipeView() { // TODO: add construction code here hpipe=NULL; } CNamedpipeView::~CNamedpipeVi…
预览 正文 下面我们来编写我们的子进程的代码: 第一步:我们先在我们资源里面添加我们相应的菜单项 第二步:我们对这些菜单项建立消息响应函数(在我们的view类中) 第三步:我们来获取我们子进程的标准输入和标准输出句柄(我们通过建立一个虚函数OnInitialUpdate())——这个虚函数是我们的窗口创建之后第一个调用的函数 第四步:同样的我们先来建立两个句柄,一个是读取的,一个是写入的,并在我们的构造函数中进行初始化,在我们的析构函数中我们去关闭这两个句柄 CChildView::CChildView() { /…
预览 正文 环境: 基于单文档的应用程序 第一步:我们先在我们的MENU中创建响应的菜单项(创建管道、读取数据、写入数据) 第二步:对这三个菜单项进行建立响应函数——这里我们先来定义两个管道的读写句柄,注意要在我们的View中的构造函数中进行初始化 第三步:我们在我们的View中的析构函数中对这两个句柄进行判断,如果还有的话,我们要将他们释放,以回收内存。 第四步:我们来创建一个匿名管道 SECURITY_ATTRIBUTES sa; sa.bInheritHandle=true; sa.lpSecurityDes…
预览 正文 下面我们来利用剪贴板来实现进程间的通信: 第一步:我们在资源中设置相关的对话框的控件 第二步:我们来编写发送端程序 void CClipboardDlg::OnBtnSend() { // TODO: Add your control notification handler code here if (OpenClipboard()) //判断剪贴板是否可以被打开 { CString str; //定义一个数据对象 HANDLE hclip; //定义一个句柄 char *pbuf; EmptyCli…
进程间通信的四种方式 进程间通信常用的有以下几种方法:(1)剪贴板;(2)匿名管道;(3)命名管道;(4)邮槽。 这四种方法又可以分为两大类,剪贴板和匿名管道只能在本地主机的各进程间通信,而命名管道和邮槽不仅可以在本地主机的各进程间通信也可以在网络中不同进程之间进行通信。 剪贴板 剪贴板是操作系统系统维护的一块内存区域,本地主机的任何进程都可以访问剪贴板,因此通过剪贴板这个中介本地主机的各进程之间就可以方便的通信,通过剪贴板进行进程间的通信。 匿名管道 通过匿名管道进行通信的进程必须是本地主机上有父子关系的进程。也…
TCP/IP模型和OSI参考模型的对应关系: 端口 为了标识通信实体中进行通信的进程(应用程序),TCP/IP协议提出了协议端口的概念 端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序通过系统调用和某端口建立连接(binding)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都通过该端口输出 端口用一个整数型标识符来表示,即端口号。端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的的两个软件模块,因此各自的端口号也相互独立 端口使用一个16位的数字…
IP地址 IP网络中每台主机都必须有一个唯一的IP地址; IP地址是一个逻辑地址 因特网上的IP地址具有全球唯一性; 32位,4个字节,常用点分十进制的格式表示,例如:192.168.0.16 协议 为进行网络中的数据交换(通信)而建立的规则、标准、约定。(=语以+语法+规则) 不同层具有各自不同的协议; OSI参考模型将网络的不同功能划分7层 应用层——处理网络应用 表示层——数据处理 会话层——主机间通信 传输层——端到端的连接 网络层——寻址和最短路径 数据链路层——介质访问(接入) 物理层——二进制传输 【…
代码 #include <iostream.h> class Animal { public: void eat() { cout<<"animal eat"<<endl; } void sleep() { cout<<"animal sleep"<<endl; } void breathe() { cout<<"animal breathe"<<endl; } }; class Fish : public Animal { voi…