后台服务程序放在公网上,使用TCP长连接与客户端通讯,,现在客户端只有一个,以后可能会增加;这个后台服务程序主要负责通讯(主要就是响应客户端的请求),并操作数据库,我打算这样设计:使用CSocket类来处理与客户端的通讯(不知道大家有没有认为更好的类?)
在其OnReceive()函数中,只接收数据包长度字段--》
开启一线程,把CSOCKET对象指针传过去,由其负责接收该请求包的其他数据-》处理数据,写数据库,-》响应数据包发给客户端—》该线程结束。(这里是用一个线程一直跑好,还是每次开个线程处理完就结束好?)。
大家给点意见。。
在其OnReceive()函数中,只接收数据包长度字段--》
开启一线程,把CSOCKET对象指针传过去,由其负责接收该请求包的其他数据-》处理数据,写数据库,-》响应数据包发给客户端—》该线程结束。(这里是用一个线程一直跑好,还是每次开个线程处理完就结束好?)。
大家给点意见。。
解决方案 »
- 有关MFC界面与控制台交互
- 关于.NET中生成exe文件的问题
- 打印机 缺纸 或断线 是否无法 从程序中检测?(windows xp)
- 为什么会产生运行时错误?不解
- char如何读到CString?
- 谁见过任务管理器中的那种显示CPU利用率和内存利用率的画图组件?
- server端ocx和cab,值得讨论
- 使用JpegLib.lib保存JPG文件时的错误,谁用过这个库?
- 急问:如何响应窗口切换事件?该事件的名称是什么?
- VC6.0下删除函数的问题~~~~
- 请看下面代码,当用PRINTF时输出次序为什么不正常?请高手解惑
- 请问一下!当我浏览dudu,com时候,就会自动下载并且安装一个dudu下载加速器?并且没有数字签名安全警告!他这个是怎么做到的?
-------------------------
还是传SOCKET句柄吧。
另外,看你的服务器的要求了,如果处理的数据量大,时间比较大,而且是很多客户端,最好开多个线程,或者使用线程池,当然,这里就比较复杂,需要管理多个线程,并要处理好线程同步;反之,则让一个线程运行就好了。
............................................
能否给个列子
1。传SOCKET句柄
2。只用一个线程,这里的一个线程负责一个连接上的处理。这个感觉用CSOCKET不太好办
3。还有一个问题,客户端的请求包长度是不固定的,每个包都带有一个长度字段。我想在CSOCKET函数的ONRECEIVE()中只接收长度字段,该包的其他数据在线程中接收,是否OK?
client只于服务器通信!
要是多client就在accept()记录SOCKET,可以+到链表里!!
通过服务器遍历连表发消息实现多client 的同步