最近做个系统,里面涉及到一个小模块:短消息。既然是消息,肯定会有一些即时消息和通知之类。所以系统要求有消息时自动提醒用户查看。
这个项目是一个WinForm项目,采用c/s结构,采用什么技术可以达到自动提醒的目的呢?
思考一:利用定时器,定时查询数据库,有新消息就发出通知。
这种方法感觉效果和理论上都可以实现,但就是有一个弊端,很影响系统性能。有没有新消息都在某一个时间间隔上去查询数据库,而且这个时间间隔设置大了又达不到要求。在大量的客户端的频繁请求下,将很可能导致服务器垮掉。所以不行
思考二:采用Socket,建立服务器和客户端的双向连接。
就像很多即时通讯软件一样应该都是采用Socket技术实现的。而且有大量这种成功案例应该还是可行的。
看了一下Socket的实现原理,服务器和客户端通过一个特定的端口来建立通讯,然后服务器和客户端都采用线程的方式,循环接收和发送数据。循环采用while(true)模式,不出故障的情况下将无限执行。这种循环需要的性能应该比定时查询数据库要更低吧,所以决定采用这种方式进行
具体实施步骤:
1、客户端建立起和服务器连接的socket,然后启动线程来循环接收来自服务器端的消息
2、服务端。因为本系统服务器没有单独的管理界面,只部署数据库。所以建立服务器段的socket我的想法是采用windows服务来做。不用界面,长时间运行,采用的windows服务挺合适的。所以又看了一下windows服务的开发过程。在服务中开线程,循环接收了处理来自客户端的消息,并及时通知客户端响应
这里就不贴代码了,把找的一些相关资料贴上来大家看看吧
1、C# Socket编程详解
2、c#Socket适合初学者
3、“服务器推”技术应用
4、如何开发windows服务
分享到:
相关推荐
socket应用小例程源代码socket应用小例程源代码socket应用小例程源代码
socket应用(我自己编写的程序)socket应用(我自己编写的程序)socket应用(我自己编写的程序)
Flash的Socket应用;Server用C#;As3.0
07-socket应用编程_专题讲座_v1.0.0(上)-王保明.rar
08-socket应用编程_专题讲座_v1.0.1(下)-王保明.rar
clj-wamp, web socket应用消息传递协议( 宋体) 用于Clojure和HTTP工具包 clj-wampweb socket应用程序消息传递协议( v1 )的Clojure实现,用于HTTP包服务器。提供常见的web socket消息传递模式和错误处理( RPC,PubSub...
vfp socket 应用示例
在前一段的工作中,需要开发一套简单的网络数据传输程序。由于平时常用Delphi做点开发,故此次也不例外。...本文在对Indy进行简要介绍的基础上,创建了一组简单的TCP Socket数据传输应用来演示了Indy的使用方法。
本demo是做一个Android利用蓝牙协议进行连接到心电检测设备,并且在应用上显示检测到的心电的值,用波形图,折线图显示,用到的技术点是 蓝牙协议,socket,硬件是嵌入式开发。
unity socket应用实例,经典应用套接字做网络游戏开发
DELPHI SOCKET 应用演示 网络通信初级例子 含生成服务端例子
SOCKET应用源代码,代码精品
socket应用 GDI应用 MFC实例,暑期实习的成果,绝对好用,不好使找我,邮箱:tootwo.love@163.com
android socket应用源程序,是我学习socket应用时候编写的,在PC机上下载一个testsocket软件,对应好IP和端口,就可以实现手机与PC机进行数据传输。本程序我是通过笔记本和手机通过无线路由器WIFI上网的状态下测试的...
获取网络时间 socket应用 教科书例程 网上总有人说获取不了网络时间,请注意服务器地址以及端口
Linux网络通信 socket应用编程知识点总结含例程
Delphi 7 中用Indy开发Socket应用程序.doc indy 资料比较少,希望对你有帮助
Java中SSLSocket应用教程和代码
C#socket应用小例程