解决方案 »

  1.   

    http://blog.sina.com.cn/s/blog_5165d4cf0100slkh.html
    http://blog.csdn.net/xinxijisuan/article/details/6227961
      

  2.   

    可以看看“Windows Socket五种IO模型”
      

  3.   

    数据库同步还需要自己做吗?
    现在大中型数据库都带有同步数据功能啊?oracel中有个同步复制的功能,可以实现数据库同步。
    mysql也有一个叫双机热备功能可以实现同步。
    sqlserver我不太清楚,不过我觉得它的数据同步应该更简单(毕竟是windows的吗)。
      

  4.   

    还有,你的这个需求,其实socket部分是最不重要的部分。
    关键部分是,如何保证断点续传(保存恢复),如何保证服务器数据库(应该相当于一个总数据库)中的数据一致性(不出现重复,混乱,数据顺序一致等问题)
      

  5.   


    有相关资料吗
    http://blog.csdn.net/woshinia/article/details/8585930
      

  6.   

    socket多线程,百川归海,就是IOCP
      

  7.   

    简单点用消息模型,如果并发量好就iocp 这个应该不是很复杂 。
      

  8.   

    1:不建议每个连接就开一个线程,如果很多的成千上万个那不得死啊 建议先看下socket的网络模型
    2:网络模型的话 如果你的通信量很少的话 就用异步通信,或者完成例程,通信量大的话还是完成端口比较好点,我建议不管负载大小都用完成端口。源码的话你就搜索一下 网上到处都是的。原理什么的一两句说不清楚
    3:多包发送的话 要处理分包连包的问题吧,这个你也得注意了。
    4:数据同步这一块说简单也简单说难也难,这个问题,如果你的连接很少的话那都没有问题的,网上找些源码改一下就好了,但是数据量很大,连接非常多的话 那就有很多问题了。包括网络延迟,服务器负载都要考虑进去的。修改数据的话尽量在表里加个时间字段什么的标记,或者直接在表里面做个判断,不然 虽然多线程同步,但是有时候网络延迟包括cpu处理的速度,会让线程多次修改读取数据库的数据不一致,打个比方,a线程修改数据库,把命令数据投递到消息队列,然后线程结束 释放互斥对象,这个时候B线程得到互斥对象调用数据库里的数据,如果现在网络延迟或者CPU超负荷还没处理完A线程的命令,那么数据库里的数据还没有修改。与内存中的数据就不一致了。
    5:我过年辞职回家了,现在在家带小孩 开个网店,帮忙点击一下啊 ,进去看看,卖面膜的,如有需要可以买个给老婆女朋友贴贴,http://item.taobao.com/item.htm?spm=a1z10.1.w7394523-7822789539.2.vxL44X&id=39896797127