后台服务程序放在公网上,使用TCP长连接与客户端通讯,,现在客户端只有一个,以后可能会增加;这个后台服务程序主要负责通讯(主要就是响应客户端的请求),并操作数据库,我打算这样设计:使用CSocket类来处理与客户端的通讯(不知道大家有没有认为更好的类?)
在其OnReceive()函数中,只接收数据包长度字段--》
开启一线程,把CSOCKET对象指针传过去,由其负责接收该请求包的其他数据-》处理数据,写数据库,-》响应数据包发给客户端—》该线程结束。(这里是用一个线程一直跑好,还是每次开个线程处理完就结束好?)。
大家给点意见。。

解决方案 »

  1.   

    现在还不打算用IOCP,主要是因为不熟,时间上不允许
      

  2.   

    把CSOCKET对象指针传过去,
    -------------------------
    还是传SOCKET句柄吧。
    另外,看你的服务器的要求了,如果处理的数据量大,时间比较大,而且是很多客户端,最好开多个线程,或者使用线程池,当然,这里就比较复杂,需要管理多个线程,并要处理好线程同步;反之,则让一个线程运行就好了。
      

  3.   

    To  orbit(走了走了) : accept的时候创建线程
    ............................................
    能否给个列子
      
     
      

  4.   

    To jjiaming(阿熊):
    1。传SOCKET句柄
    2。只用一个线程,这里的一个线程负责一个连接上的处理。这个感觉用CSOCKET不太好办
    3。还有一个问题,客户端的请求包长度是不固定的,每个包都带有一个长度字段。我想在CSOCKET函数的ONRECEIVE()中只接收长度字段,该包的其他数据在线程中接收,是否OK?
      

  5.   

    CSocket()和CAsyncSocket()类,哪个类更适合我的程序?
      

  6.   

    CAsyncSocket()异步比CSocket()好点
      

  7.   

    服务器处理数据库操作!!
    client只于服务器通信!
    要是多client就在accept()记录SOCKET,可以+到链表里!!
    通过服务器遍历连表发消息实现多client 的同步
      

  8.   

    现在打算监听socket类使用CAsyncSocket类,收发socket类使用CSocket类,这样好不好?