一个有用的Windows服务小程序——用来完成Server端的Socket通信

简介:
    今天被迫要做一个接收通信的模块,以前从来都没有做过关于通信方面的东西,就像没有做过有关GIS方面的程序一样是头一次开发此类程序。
      这个Socket通信说是自己的其实完全不是(如果哪位高人见到此程序是您本人开发的千万不要介意,本人也是在网上搜索出的,这个程序真的很不错,值得推广哦!在此谢谢发布此Socket通信程序的高人)。
      此程序的大部分源码没有任何改动,只是原来的Server端是用C/S程序写的,为了能使Socket通信的Server端更灵活,在此将其改成一个Windows服务,因此也需要改动了一些Server端的代码和工程,但是基础类和Client端都没有改变。
      对于我本人来说,Windows服务和Socket通信本人都不是很了解,只是经过了昨天简单的学习和研究才完成了此Windows服务Server端Socket通信程序,所以也说不出太多的门道,如果有清楚这方面知识的博友还希望能多多交流。好了,废话少说,开始正题了。
      现在开始我们来讲解,如何一步一步地完成Windows服务Server端Socket通信程序。
      我个人认为Windows服务只是包裹在Socket通信程序外的“一件外套”,所以核心还是我在网上找到的这个Socket程序,为此我们的第一步应该先开发出此Socket程序的类库。
1、打开Visual Studio.Net2003,单击菜单中的“文件”——>“新建”——>“项目”,在弹出的对话框左侧选择“Visual C#项目”,在右侧选择“类库”,下方的名称中输入“SocketLibrary”,位置自己随便选择一个路径。
2、删除自动创建的Class1.cs,新建如下的类名文件“Client.cs”、“Connection.cs”、“ConnectionCollection.cs”、“Message.cs”、“MessageCollection.cs”、“Server.cs”、“SocketBase.cs”和“SocketFactory.cs”。
3、各个类文件的代码如下:
(1)、Client.cs文件中的代码:
Client.cs文件代码
(2)、Connection.cs文件中的代码:
Connection.cs文件代码
(3)、ConnectionCollection.cs文件中的代码:
ConnectionCollection.cs文件代码
(4)、Message.cs文件中的代码:
Message.cs文件代码
(5)、MessageCollection.cs文件中的代码:
MessageCollection.cs文件代码
(6)、Server.cs文件中的代码:
Server.cs文件代码
(7)、SocketBase.cs文件中的代码:
SocketBase.cs文件代码
(8)、SocketFactory.cs文件中的代码:
SocketFactory.cs文件代码
4、将文件和代码建立和粘贴完成后,运行此类库,会在程序所在路径文件夹里的“bin\Debug\”下找到“SocketLibrary.dll”文件,下面开发的Windows服务就需要引用这个dll文件。

      第二步再来开发出Windows服务。
1、打开Visual Studio.Net2003,单击菜单中的“文件”——>“新建”——>“项目”,在弹出的对话框左侧选择“Visual C#项目”,在右侧选择“Windows服务”,下方的名称中输入“SocketService”,位置自己随便选择一个路径。
2、删除自动创建的服务文件,新建如下的Windows服务文件“SocketService.cs”。
3、在SocketService.cs文件的设计界面,选择开发环境右侧的“属性”页卡,会在页卡底部发现“添加安装程序(I)”,单击此处后会在解决方案的SocketService工程下多一个服务文件“ProjectInstaller.cs”。
4、在ProjectInstaller.cs文件的设计界面,会看见两个组件“serviceProcessInstaller1”和“serviceInstaller1”。将serviceProcessInstaller1组件的Account属性设置为“LocalSystem”(表示本地系统服务,NetworkService表示网络服务,LocalService表示本地服务,User表示用户服务);再将serviceInstaller1组件的StartType属性设置为“Automatic”(表示服务自动启动,Manual表示手动启动,Disabled表示禁用)。
5、右击解决方案中的“引用”,选择添加引用,在弹出的对话框中选择“浏览”,将前面的“SocketLibrary.dll”添加到此引用。
6、在系统C盘下建立两个文件“SocketService.ini”和“SocketService.log”。SocketService.ini文件是配置SocketService监听的端口号,打开该ini文件在其中编辑下面的内容“端口号:8088”(双引号请不要输入在ini文件的内容里),而SocketService.log是为了记录有关信息的日志。
7、删除SocketService.cs文件的所有代码,将下面的代码拷贝到该文件中: 
SocketService.cs文件代码
8、在Visual Studio.Net2003的菜单上选择“生成”——>“重新生成解决方案”,当生成成功后,会在程序所在路径文件夹里的“bin\Debug\”下找到“SocketService.exe”文件,记住这个路径和文件名,下一步需要用到。
9、打开“Visual Studio .NET 2003 命令提示”(应该都知道如何打开吧,不知道的可以在评论中询问)。在其中输入“installutil [第8步中的路径和文件名]”(例如:installutil C:\SocketService\bin\Debug\SocketService.exe),按下回车,将会在本机上安装刚开发好的Windows服务,如果要卸载安装过的Windows服务请在“Visual Studio .NET 2003 命令提示”中输入“installutil /u [第8步中的路径和文件名]”(例如:installutil /u C:\SocketService\bin\Debug\SocketService.exe)。
10、制作Windows服务的安装部署工程(略)。

      第三步最后开发出一个Socket通信的客户端来验证此服务。
1、和以往建立C/S程序的过程一样,只是将工程名称改为“SocketClientTest”。
2、删除自动创建的Form1,新建窗体“CFrom”。
3、窗体控件与布局见下图:

4、在引用中添加“SocketLibrary.dll”引用(添加方法和SocketService工程添加方法相同)
5、后台代码如下:
CForm.cs文件代码
6、运行程序,点击CForm中的“连接”按钮,再在TextBox1中输入部分信息,单击“发送”按钮,看看在C:\SocketService.log中是否记录了CForm窗口中TextBox1中的内容。

      到此我们就已经将这个Socket通信Server端的Winodows服务开发完成了。下面提供源程序的下载:

本地下载     SocketLibrary类库源码

本地下载     Server端Socket通信Windows服务源码

本地下载     SocketClientTest源码

本地下载     SocketServerTest源码(没有改变为Windows服务时的程序,即下载时的原程序)

以上程序已在Visual Studio.Net2003下运行通过。


本文转自刚刚博客园博客,原文链接:http://www.cnblogs.com/lijigang/archive/2007/05/22/754976.html,如需转载请自行联系原作者

相关文章
|
4天前
|
监控 安全 虚拟化
深入浅出:NSSM封装Windows服务工具的使用与介绍
深入浅出:NSSM封装Windows服务工具的使用与介绍
16 3
|
6天前
|
关系型数据库 MySQL PHP
如何在Windows安装Wnmp服务并实现固定地址远程访问
如何在Windows安装Wnmp服务并实现固定地址远程访问
|
12天前
|
存储 网络协议 关系型数据库
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
Python从入门到精通:2.3.2数据库操作与网络编程——学习socket编程,实现简单的TCP/UDP通信
|
17天前
|
网络协议 安全 文件存储
Windows如何使用IIS服务搭建本地WebDAV网站并实现远程管理储存文件
Windows如何使用IIS服务搭建本地WebDAV网站并实现远程管理储存文件
|
17天前
|
网络协议 安全 测试技术
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
Windows安装禅道系统结合Cpolar实现公网访问内网BUG管理服务
|
17天前
|
小程序 JavaScript Java
基于SpringBoot+Vue+uniapp微信小程序的医院核酸检测服务系统的详细设计和实现
基于SpringBoot+Vue+uniapp微信小程序的医院核酸检测服务系统的详细设计和实现
36 0
|
17天前
|
机器学习/深度学习 安全 数据安全/隐私保护
Windows系统安装Jupyter Notebook并实现公网访问内网笔记服务
Windows系统安装Jupyter Notebook并实现公网访问内网笔记服务
|
21天前
|
数据安全/隐私保护 Windows
Windows系统下载安装Plex媒体服务结合内网穿透远程访问本地影音文件
Windows系统下载安装Plex媒体服务结合内网穿透远程访问本地影音文件
|
24天前
|
小程序 前端开发 JavaScript
小程序全栈开发:前端与后端的完美结合
【4月更文挑战第12天】本文介绍了小程序全栈开发,涵盖前端和后端的关键点。前端使用WXML和WXSS进行页面结构和样式设计,JavaScript处理逻辑及组件使用;后端采用Node.js等语言处理业务逻辑、数据库设计和API接口开发。前端与后端通过数据交互实现结合,采用前后端分离模式,支持跨平台运行。调试测试后,提交微信审核并上线运营。掌握前端后端结合是小程序成功的关键。
|
27天前
|
安全 Windows
Microsoft Windows远程桌面服务远程执行代码漏洞(CVE-2019-0708)
Microsoft Windows远程桌面服务远程执行代码漏洞(CVE-2019-0708)
11 0

热门文章

最新文章