java中命名管道跨进程通讯的示例分析
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章给大家分享的是有关java中命名管道跨进程通讯的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。客户端代码:#include "stdafx.h" #inc
千家信息网最后更新 2025年02月04日java中命名管道跨进程通讯的示例分析
这篇文章给大家分享的是有关java中命名管道跨进程通讯的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
客户端代码:
#include "stdafx.h" #include#include #include int main(int argc, _TCHAR* argv[]) { srand(time(NULL)); DWORD wlen = 0; Sleep(1000);//等待pipe的创建成功! BOOL bRet = WaitNamedPipe(TEXT("\\\\.\\Pipe\\mypipe"), NMPWAIT_WAIT_FOREVER); if (!bRet) { printf("connect the namedPipe failed!\n"); return 0; } HANDLE hPipe = CreateFile( //管道属于一种特殊的文件 TEXT("\\\\.\\Pipe\\mypipe"), //创建的文件名 GENERIC_READ | GENERIC_WRITE, //文件模式 0, //是否共享 NULL, //指向一个SECURITY_ATTRIBUTES结构的指针 OPEN_EXISTING, //创建参数 FILE_ATTRIBUTE_NORMAL, //文件属性(隐藏,只读)NORMAL为默认属性 NULL); //模板创建文件的句柄 if (INVALID_HANDLE_VALUE == hPipe) { printf("open the exit pipe failed!\n"); } else { while(true) { char buf[256] = ""; sprintf(buf,"%s%d",buf,rand()00); if(WriteFile(hPipe,buf,sizeof(buf),&wlen,0)==FALSE) //向服务器发送内容 { printf("write to pipe failed!\n"); break; } else { printf("To Server: data = %s, size = %d\n", buf, wlen); char rbuf[256] = ""; DWORD rlen = 0; ReadFile(hPipe, rbuf, sizeof(rbuf), &rlen, 0); //接受服务发送过来的内容 printf("From Server: data = %s, size = %d\n", rbuf, rlen); } Sleep(1000); } CloseHandle(hPipe);//关闭管道 } system("pause"); return 0; }
服务端代码:
#include "stdafx.h" #include#include #include int main(int argc, _TCHAR* argv[]) { srand(time(NULL)); char buf[256] = ""; DWORD rlen = 0; HANDLE hPipe = CreateNamedPipe( TEXT("\\\\.\\Pipe\\mypipe"), //管道名 PIPE_ACCESS_DUPLEX, //管道类型 PIPE_TYPE_MESSAGE|PIPE_READMODE_MESSAGE|PIPE_WAIT, //管道参数 PIPE_UNLIMITED_INSTANCES, //管道能创建的最大实例数量 0, //输出缓冲区长度 0表示默认 0, //输入缓冲区长度 0表示默认 NMPWAIT_WAIT_FOREVER, //超时时间 NULL); //指定一个SECURITY_ATTRIBUTES结构,或者传递零值 if (INVALID_HANDLE_VALUE == hPipe) { printf("Create Pipe Error(%d)\n",GetLastError()); } else { printf("Waiting For Client Connection...\n"); if(!ConnectNamedPipe(hPipe, NULL)) //阻塞等待客户端连接。 { printf("Connection failed!\n"); } else { printf("Connection Success!\n"); } while (true) { if(!ReadFile(hPipe,buf,256,&rlen,NULL)) //接受客户端发送过来的内容 { printf("Read Data From Pipe Failed!\n"); break; } else { printf("From Client: data = %s, size = %d\n", buf, rlen); char wbuf[256] = ""; sprintf(wbuf, "%s%d", wbuf, rand()00); DWORD wlen = 0; WriteFile(hPipe, wbuf, sizeof(wbuf), &wlen, 0); //向客户端发送内容 printf("To Client: data = %s, size = %d\n", wbuf, wlen); Sleep(1000); } } FlushFileBuffers(hPipe); DisconnectNamedPipe(hPipe); CloseHandle(hPipe);//关闭管道 } system("pause"); return 0; }
感谢各位的阅读!关于"java中命名管道跨进程通讯的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
管道
内容
文件
客户
客户端
服务
示例
通讯
分析
代码
参数
属性
更多
篇文章
结构
缓冲区
长度
缓冲
不错
实用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
公司的信息导入app数据库
客户服务器系统最大的特点是
软件开发各种评审内容
uu加速器游戏服务器到路由器
数据库现有如下关系
软件开发需要什么专业人才
哈尔滨学网络技术有限公司
uc小游戏服务器连接不上
请求失败网络异常或服务器
数据库中input语句
服务器连续十年销量第一
北京5g网络服务器机柜厂家
贵州省网络安全日
sql数据库安全教程
易语言 服务器管理
计算机网络技术需要学习的内容
全球根服务器所属哪个国家
阿里巴巴网络安全软件
检验科网络安全检查
魔法觉醒所有服务器
国内有什么和服务器有关的工作
软件开发对社会的有益之处
互联网科技汛
软件开发的财务分析怎么写
网络安全工程师在北京工资
致远服务器参数
邢台商城软件开发
网络安全等级保护管理制度
中国知网的期刊数据库有几个字段
宝安区软件开发教学