本站联系方式
   联系QQ  :1095080675
   联系QQ  :1223950575
  技术指导:1353934434
  
  电子邮箱:1095080675@qq.com
标题  基于.NET Socket的通信系统的实现
编号  12138
编程语言  ASP.NET, C#
开发环境  Visual Studio 2005 或 2008
数据库  SQL Server 2005
资料明细  论文、程序
推荐指数  ★★★★★
内容介绍

0.引言
在现行的软件工程开发中.基于C,S或B/S的开发越来越得到广泛的应用。如何建立服务器与客户机之间的通信。是一个 必须要解决的问题。本文从一个实例出发.探讨了一个基于Sockets的C,S通信系统.论述了如何建立C,S之间的连接及相 互之间的信息交换。并在服务器上对客户机的请求进行响应。
1.设计思想
本系统主要实现如下功能:用客户机监控服务器运行的应用程序(进程),并可关闭服务器中不允许运行的应用程序(进 程)。本系统采用C/S模式,服务器上安装Windows服务程序;客户机上安装Windows应用程序。具体方法是.客户机启动用于监 控的Willd嗍应用程序(Tel缃onitor),利用服服务(Servedjstener)连接到服务器,并查看服务器上运行的所 有进程,并可根据需要关闭服务器中的相应进程。其通信流程如图l所示:
2.设计实现
2.1 Server端服务程序
为了不让客户机知道服务程序的存在.不采用WirIdows应用程序。而采用wiIldows服务程序。并将其启动方式设为自动运 行。该服务接受客户机的连接,向客户机发送进程列表,并执行客户机发送过来的指令。关闭服务器的相应进程。在服务器上创 建一个名称为senremstener的windows服务项目,VS.NET自动产生以serviceBase为基类的Service类.该类为整个程序的 主类。为该项目添加以下引用:
using System.Net;
using System.Net.Sockets;
using System.Threading;
2.1.1创建监听
为了在服务器和客户机之问通过’rC肌P协议通信,System.Net.Sockets命名空间提供了TcpListener类和TcpClient类。 TcpListener类用于服务器上,该类的构造函数定义了服务器监听的端口号,并用Start方法启动监听。为了与客户机通信,需要创 建一个Tcpclient类对象,可用TcpListener类的AcceptClient方法创建一个Tcpclient类对象。该方法在建立与客户机的连 接之前是禁用的。客户机也使用TcpClient类,并用该类的connect方法启动与服务器的连接,之后使用与TcpClient类对 象相关的流发送和接收数据。上述过程可简称为创建监听。在对客户机的请求进行响应时先进行判断.如果客户机发送的命令 串为GetList,服务器响应后返回其进程列表,否则调用mprocess.CloseMainWindow和mprocess.kill()结束该进程。达到监控的目的。该功能由ThreadFunc实现。
2.1.2在线程中启动监听
上述创建的监听不能直接在Servicel类的OnStart(string[] args)函数中实现。如果这样,会导致系统无法启动此服务, 在启动的过程中。监听已经开始了。等待监听的服务是无法完成启动的。为此,需要创建了一个线程对象mainThread服务时带来的麻烦.当然也可以创建多个线程完成更多的任务。 在OnStart(string[] args)函数中调用mainThreadkill方法,用以在启动服务时,启动mainThread线程。另外。需在Servicel类的 0nStop()函数中调用mainthread.Abort方法,用以在停止服务时终止线程的运行。
在创建mainThread线程时.同时用new ThreadStart(ThreadFunc)为其指明了执行函数ThreadFunc()。将监听代码加在该函 数体内,即由该函数实现监听。为了能够重复监听客户机发送的请求,用while(true)来进行反复监听。该功能由Senricel类的 Onstart(string[] args)调用mainthread.start()方法实现。
2.1.3在服务器中安装监昕服务

说明
 以上是论文部分内容。如果对以上内容感兴趣,可以QQ:1095080675或邮件1095080675@qq.com继续联系我们。
相关文章
  • 基于TCP协议的简单即时通信软件的设计与实现
  • 多功能聊天软件的设计与开发(音频聊天)
  • 多功能聊天软件的设计与开发(视频聊天)
  • 文章导航
  • 上一篇:ASP.NET实现的人事管理系统
  • 下一篇:基于ASP.NET的编辑部在线管理系统