请问大虾:在用C#开发C/S结构系统的时候用什么方法解决长时间不间断连接(要求可靠性高)通信问题,如果采用中间件来实现,选用哪种中间件更合适??????谢谢

解决方案 »

  1.   


    你可以使用WebServices、Socket、Remoting等等,看你是什么情况了
      

  2.   

    对不起,没把问题说具体。是非web架构,类似于传统的C/S架构。现在具体考虑两种方案:1、如果采用传统C/S架构,用什么方法解决长时间不间断连接、高可靠性的数据通信问题???
    2、采用中间件,采用什么中间件更合适???(更适合于用C#做用户程序并且能比较好的调用该中间件的功能)请指教,谢谢!!!
      

  3.   

    网络层采用TCP协议。要求可靠性高,除了保证物理层的连通,主要还是要看应用层的设计,如服务端收到了客户端的数据,就应明确给客户端一个应答(反之也一样),如果在规定的时限内没有收到应答那就认为本次数据传输失败。
      

  4.   

    只是解决“解决长时间不间断连接(要求可靠性高)通信问题”的话,没必要用中间件,socket自己控制一下就可以了
      

  5.   

    呵呵 其实楼主自己解决这个问题最好.多有意思啊
    动动脑子.
    假设你的网络环境比较复杂,网络连接不稳定,要作到保证长时间不间断连接,不出现暂时的阻塞,其实就用循环并行短连接最好了.
    比如为每一对连接准备两到三个TCP连接, 每个TCP连接都可以通信,里边传输的数据包要你自己封一下,也可以作验证.
    每个连接一旦BREAK,就自己重新连接,但是一般情况下, 每个连接一旦超过10秒,且暂时空闲,就断掉自己.SLEEP(256)后再次连接.循环使用三个线. 对于服务端来说 也就是开放3个端口就好(多个客户端可以共同使用同一端口)每个连接内部的传输控制代码你还要检测自身的传输状态,一旦出现发送超时或回传变慢,马上切断自己,再去连接.
      

  6.   

    问题最后还是采用中间件解决了,呵呵,也省了自己去写通信代码了!!
    不过fengyecsdn的建议听也来也不错,完了这个项目自己再去试试吧!