与Windows服务的通讯

使用C++将守护进程和主进程设计成windows服务,并使用命名管道进行通讯 由于项目需求,需要设计一个守护进程来守护主进程。 守护进程的实现方式: 1. 设计成进程 2. 设计成服务 因为希望主服务随windows开机启动即启动,所以将守护进程和主进程设计成windows服务。 守护服务于主服务间的通讯方式: 1. socket 2. 管道(分为匿名管道和命名管道) 3. WM_COPYDATA消息   WM_COPYDATA是一种非常强大却鲜为人知的消息。当一个应用向另... 阅读详情
       在应用程序或其他服务中,可以与Windows服务通讯,包括:
  •          管理Windows服务的生命期,即开启、停止、暂停和重启服务;
  •          获得Windows服务的属性和状态;
  •          获得特定计算机上的服务列表;
  •          向特定的服务发送命令。
        这些操作是通过ServiceController 类完成的。ServiceController是一个可视化控件,可以在工具箱中找到。
        比较有意思的是ServiceController 中ExecuteCommand这个方法,调用这个方法,可以向Windows服务发送命令,指挥Windows服务的一些操作。例如,在Windows服务的入口类中有一个复写OnCustomCommand()的方法:
         /// <summary>
         /// 执行用户自定义消息
         /// </summary>
         /// <param name="command">消息编号</param>
         protected override void OnCustomCommand( int command )
         {
              try
              {
                   switch( command )
                   {
                       case 1: // 业务操作
                            doBusiness1();
                            break;
                       case 2: //业务操作
                            doBusiness2();
                            break;
                       default:
                            ……
                            break;
                   }
              }
              catch( Exception ex )
              {
                   // 错误信息
                   string strErrorMsg = string.Format("异常:{0}/n", ex.Message );
                   // 写日志
                   TLineEventLog.DoWriteEventLog( strErrorMsg, EventType.Error );
                   // 给管理员发邮件
                   CMail.SendMail(
PropertyManager.strMailFromAddress, PropertyManager.strMailAdminAddress, "",
                       "异常信息提示",
strErrorMsg );
                   // 写Trace
                   Trace.WriteLine( strErrorMsg );
              }
         }
        在另外一个应用程序中通过ServiceController的ExecuteCommand()方法向这个Windows服务发送命令:
            myController.ExecuteCommand(2);
        Windows服务将执行业务方法:doBusiness2();
        应该承认,利用ServiceController与Windows服务通讯的功能目前还十分薄弱。通过ExecuteCommand只能与Windows服务进行简单而有限的通讯。
        笔者在实际的应用中,分别用一个命令行程序、一个控制台程序和一个Webservice和Windows服务进行通讯,启动、停止服务,或通过ExecuteCommand控制服务的行为。

http://blog.youkuaiyun.com/zhangyuk/article/details/338243

Windows环境下搭建TeamSpeak 3服务器:打造安全高效的私有语音通讯系统 本文详细指导在Windows环境下搭建TeamSpeak 3服务器,实现安全高效的私有语音通讯系统。涵盖硬件要求、安装步骤、防火墙配置、加密通讯设置及权限管理等关键环节,特别适合游戏战队和远程团队使用。通过自主掌控VoIP服务器,确保语音数据安全并降低延迟,提升团队协作效率。 阅读详情

相关推荐

即时通讯学习笔记005---在windows中安装OpenFire服务器即时通讯服务器_使用OpenFire内置数据库

大体上是下面的安装过程,但是我本地装的版本高,所以 把我安装时候的过程截图下来: 安装exe文件以后,会自动弹出,这个页面,如果没有的话: http://localhost:9090/setup/index.jsp 自己去访问这个地址吧 点击继续 点击继续 点击继续 点击继续 点击继续 点击继续 点击登录到管理页面 登录   Open...

添柴程序猿的专栏 694

Windows的消息机制和通信机制

应用程序可以定义自定义消息,以实现特定功能。自定义消息通常使用WM_APP以上的值。Windows操作系统的核心机制涵盖了内核架构、进程和线程管理、内存和文件系统管理等多个方面。窗口消息和消息机制是Windows与应用程序交互的基础,而DLL框架和进程间通信则为应用程序提供了模块化和高效的通信手段。深入理解这些机制有助于开发高效、稳定和安全的Windows应用程序。

远方雪的专栏 2004

Windows平台下ejabberd即时通讯服务器安装与配置实战

经过这一整套配置下来,你会发现,ejabberd不只是一个“能跑起来”的IM服务器,而是一个高度可塑的企业通信中枢。它真正的魅力在于:✅稳定性:基于Erlang的软实时架构,7×24小时不中断✅可扩展性:支持分布式部署,横向扩容无压力✅安全性:全链路TLS加密 + 细粒度权限控制✅灵活性:模块化设计,API/Webhooks无缝集成第三方系统🚀 所以,无论你是要做:- 企业内部协作平台- 客服对话系统。

weixin_42511832的博客 735

Windows服务完成Server端的Socket通信

现在开始我们来讲解,如何一步一步地完成Windows服务Server端Socket通信程序。       我个人认为Windows服务只是包裹在Socket通信程序外的“一件外套”,所以核心还是我在网上找到的这个Socket程序,为此我们的第一步应该先开发出此Socket程序的类库。 1、打开Visual Studio.Net2003,单击菜单中的“文件”——>“新建”——>“项目”,在弹出的

ShuLiu's Log Book 2731

西门子PLC与汇川SV660P伺服速度模式配置实战指南

本文详细介绍了西门子S7-1200 PLC与汇川SV660P伺服驱动器在速度模式下的配置实战指南。从硬件接线、伺服参数配置到TIA Portal软件组态和PLC程序编写,提供了全面的操作步骤和实用技巧,帮助工程师快速解决伺服系统调试中的常见问题,确保系统稳定运行。

weixin_30316097的博客 498

读书笔记:深度学习入门-基于python的理论与实现(俗称鱼书)

终于从头到尾把鱼书看完啦,真的是非常入门,非常查漏补缺,对新手很友好,对有一定基础的人也非常不错。看完不复习等于没看,所以今天开始复盘,顺便写这篇读书笔记。希望分享给没看过这本书或者看过这本书的同僚们参考,欢迎大家指教。我将从第三章神经网络开始复习,前两章内容书里已经非常基础and清楚了。(会持续更新滴).........

博客而已 1万+

Windows交互服务

在Windows中服务与桌面分别位于不同的会话中,服务与桌面交互主要有以下方法: 1.  在用户会话中创建进程,服务与该进程交互,实现服务与桌面交互。这种方法可以实现复杂的交互,但首先需要解决的是获取当前用户的会话,利用CreateProcessAsUser函数来创建进程。 2.  通过函数WTSSendMessage实现弹窗提醒。 这里将展示第一种方法,在创建服务函数CreateServi

u014291956的专栏 730

【面试经验】京东-技术产品经理一面:从紧张到反思的全流程复盘

本文详细复盘了京东技术产品经理一面的全流程,从面试前的简历打磨、业务理解和技术基础准备,到面试中的高压对话和突发状况应对,再到面试后的深度反思与改进方案。文章特别强调了技术产品经理需要具备的技术理解力、数据敏感度和商业思维,并提供了实用的面试建议和准备技巧。

weixin_28730927的博客 161

windows网络编程客户端与服务器端通信

本文使用socket流式套接字实现一个简单的服务器与客户端通信,将详细介绍通信的原理及实现。 1.通信原理过程: 服务器端首先要打开,进行监听,由于在于windows操作系统实现,所以要对动态链接库进行初始化(代码中有详细的标识,linux不需要初始化)。服务器要先进行创建两个流式套接字(tcp连接)—监听套接字和已连接套接字(会话套接字),绑定本地地址,然后使用监听套接字通过listen函数对客户端发送的connect请求进行监听。当监听到请求时,使用一个循环持续使用accept回应connect的连接

m0_52016448的博客 848

从开通VPS到搭建宝塔面板全教程

你在输入域名(此时我们可能没有类似aaa.com这样的域名,所以要输入VPS的IP地址)的时候,下面的根目录也会跟着变动,等输入完成后,你可以把根目录再改回成/www/wwwroot/dq。这时,在你的浏览器中,输入外网面板地址的URL,输入username和password,即可登陆宝塔面板。第一次登陆,需要绑定你的宝塔账号,你可以到宝塔的注册界面,用手机注册一个,然后绑定,首先看一下你的VPS操作系统是什么类型的(其实你在选择VPS的时候,就已经选定了,我选择的事Centos系统)。

kxltsuperr的专栏 3729

Open3D DBSCAN聚类

DBSCAN算法做为一种有名的密度聚类算法,它是通过邻域参数(Distance,MinPts)来刻画样本分布的紧密程度。而在真正开始之前,首先要理解下面这几个概念:更为具体的内容也可参考这篇文章点云DBSCAN聚类算法。...

dayuhaitang1的博客 1794

WinForm 和 Windows Service 通信 - 消息队列

如题,WinForm 和 Windows Service 通信,就是应用程序和系统服务通信,可以看成是进程间的通信。通信的方式有很多,这里只介绍通过消息队列(MessageQueue)方式。理论知识就不介绍了,直接介绍实例吧。 工程下载/Files/newspring/WindowsService.rar 一、建立工程 建立3个项目,其中, Common 为类库,包含错误日志...

519

k8s配置habor作为镜像地址之后,如果harbor中没有镜像,如何设置自动从阿里云官方镜像仓库下载

通过 Harbor 的远端仓库可以集中管理。如果你在上游设置了 image prefix 为 library,那么对外访问 harbor.your-domain.com/library/nginx:latest 就会被 Harbor 去上游拉取 registry.cn-hangzhou.aliyuncs.com/library/nginx:latest 并缓存。- 将集群中的镜像地址改为 Harbor 的域名,比如 harbor.your-domain.com/library/nginx:latest。

极客栈 422

c++ 与windows服务的通讯_Windows 命名管道研究初探

Industrial frame with yellow pipelines and other objects against the white brick wall background. Vector illustration隶属于 360 公司信息安全中心,我们深谙“未知攻,焉知防”,团队成员专注于各类漏洞利用研究,在红蓝对抗、区块链安全、代码审计拥有多年资深经验。author...

weixin_42470362的博客 295

OpenClaw进行安全测试(附使用场景案例)

test-master 是一个全面的测试专家,覆盖功能测试、性能测试、安全测试三大领域。这里我们重点来看下使用test-master如何进行安全测试。使用 test-master 时,可以针对以下高频领域进行专项安全扫描:✅ OWASP Top 10 测试✅ SQL 注入测试✅ XSS 测试✅ CSRF 测试✅ 认证 / 授权测试。

十二测试录 330

别把 ABAP 时间戳当数字算:TIMESTAMP / TIMESTAMPL 的语义、正确用法与项目级避坑指南

ABAP时间戳使用指南与常见陷阱 摘要:ABAP中的时间戳(TIMESTAMP/TIMESTAMPL)本质是UTC时间的数字表示,而非累计秒数。正确用法包括:直接比较时间戳顺序、使用CONVERT TIME STAMP进行时区转换、通过CL_ABAP_TSTMP计算时间差。关键注意事项:绝对不要对时间戳本身进行数学运算,否则会导致非法时间值。实际项目中需特别注意SAP Gateway的ETag处理、跨时区系统集成和CDS视图中的时间戳使用场景,避免将本地时间误存为UTC时间戳或在云迁移时产生时区问题。(14

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 342

c++ 与windows服务的通讯_物联网之MQTT服务器搭建

引言随着物联网的普及,越来越多的智能设备接入到网络中,我们可以很方便的远程控制设备,比如wifi插座,窗帘,灯等等。由于嵌入式设备硬件资源受限,往往内存只有几十,百来Kbyte,因此如何减少数据的交互的前提下,还要保证智能设备与服务器能够正常通讯是关键之一。 而MQTT网络通讯协议是目前物联网行业中应用最多的协议之一,熟悉的阿里云,涂鸦,机智云等等各大平台都支持了MQTT协议。什么是MQTT协议M...

weixin_31342203的博客 741

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

c++ 与windows服务的通讯_IP电话机中网络通讯录的应用之一:XML

共同学知识,一起玩通信----------------------------------------------------------- 桌面办公电话,从传统的普通电话机—数字电话机—IP电话机逐步升级、更新换代。办公效率、高节奏的要求逐步提升,公司把内部通讯录打印出来贴到办公工位上的时代已经不存在了,尤其是对于中大型公司来讲,几百上千人的内部通讯录从数量、保密...

weixin_36281055的博客 458

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

c++ 与windows服务的通讯_浅谈 windows 命名管道

很多时候,在一些文章中,工具利用中,都会提到管道(pipe)。那么,什么是管道呢?管道能做什么呢?本文以 windows 管道为主,边学习边整理,希望可以给其他感兴趣的人提供帮助。如有不到之处,或是描述错误的地方请大家多多包涵,多多指点。一、管道简述管道并不是什么新鲜事物,它是一项古老的技术,可以在很多操作系统(Unix、Linux、Windows 等)中找到,其本质是是用于进程间通信的...

weixin_39769627的博客 857

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Wineim助讯通Windows服务端9.8.11增强版:企业即时通讯的守护者

Wineim助讯通Windows服务端9.8.11增强版:企业即时通讯的守护者 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在数字化时代,企业内部通讯的安全性和效率成为企业发展的关键因素。Wineim助讯通Windows服务端9.8.11增强版正是针对这一需求而生的企业级即时通讯解决方案。它不仅为企业提供高效稳定的通讯环境,还确保所有数据安全可控,不经过任何第三方服...

gitblog_06709的博客 848

<javascript><node.js><websocket>使用node.js创建websocket服务器,与网页端websocket客户端进行数据通讯,且创建windows批处理程序一键启动

本文是网页端调用javascript脚本创建websocket客户端,与websocket服务端进行通讯的简单示例,与此同时,为了方便启动,在windows系统下,使用批处理指令,一键启动网页和websocket服务器。

用沸腾的热血,支付我们的人生吧! 1279

Windows Socket 编程_单个服务器对多个客户端简单通讯

Windows Socket 编程_单个服务器对多个客户端简单通讯 单个服务器对多个客户端程序: 一。简要说明 二。查看效果 三。编写思路 四。程序源代码 五。存在问题   一。简要说明:  程序名为:TcpSocketOneServerToMulClient  程序功能:实现单个服务器对多个客户端通讯功能的小程序。  PS: 这是继上次简单的 Tcp Windows Sock...

guomei1345的博客 1365

C# 创建windows服务、socket通讯实例

本人一直以来都是一个实践主义者,认为在实践中学习,是最好的学习方式。所以在博客中添加文章的时候,总是习惯写一些具体实现的技术知识点。感觉这些东西可以更好的帮助那些学习使用.net c#进行开发开发者。虽然自己的文笔不好,知识的应用也很渐显,但是本着互相学习的精神,希望在总结的同时可以加深自己的理解,考效自己对各个知识的了解程度,共同提高。 言归正传,我今天要说的就是一个windows 服务结合...

weixin_30502157的博客 236

使用IPC实现进程间通讯(服务端使用Windows服务实现)

Net下看通过NetRemoting方便的实现进程间通讯,下面就具体总结一下: 1、先定义通讯的接口,并封装成库: 注意,如果通讯时涉及到自定义的类型,一定要添加[Serializable]属性,使类可串行化。 [Serializable] public class IPCInfo { 。。。 } public interface IPCDll {   void SetIn

飞鹰技术 2837

c++ 与windows服务的通讯_Windows操作系统之不带引号的服务路径提权

BINARY_PATH_NAME 如果没有加双引号的话,在启用服务过程中查询路径的时候,遇上空格会造成截断,那么利用思路就出来了,在C:Program Files(程序路径,我本机是安装在C盘)这个目录的同级目录 也就是C: 放置一个Program的程序,启用服务的过程中是不是就加载了这个程序呢?当系统管理员配置Windows服务时,他们必须指定要执行的命令,或者运行可执行文件的路径。当Windo...

weixin_36050866的博客 286

windows的socket_tcp服务端与windows的socket_tcp客服端简单通讯

小例子代码实现了基于udp 的socket通信。完成的功能如下: 1、          利用socket编程建立服务器与客户端之间的UDP连接。 2、          完成C/S之间的数据通信,具体包括4点:         ①  Client通过给定的Server IP和端口号向Server端发送请求。请求来自cmd命令行用户输入。         ② Server端

金石之言 493
上一篇: Windows静态库和动态库的调用方法汇总
下一篇: 中断解析
nodeathphoenix
博客等级 码龄16年 97粉丝 99原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值