项目需要,写了个简易中间件,采用异步TCP通讯,服务端好办,来一个请求就应答一个请求。
客户端不好处理,为了简化客户端调用程序,客户端程序使用了ManualResetEvent,进行阻塞,并且做了超时处理,这些都不在本帖讨论的范围。客户端要访问一百多个数据表,衍生出来的存储过程有一千多个,因此我每个表所针对的存储过程都建立了一个Class,最简单的编程方法是每个Class都建立一个异步TCP通讯,但是这样处理会导致客户端与服务端建立的连接非常多,会让服务端带来不可估量的负担,请问如何减少连接数?或许可以仅创建一个TCP连接,然后大家都用,使用完成端口来传递数据,但是我的项目同时还要在WinCE中使用,CE没有完成端口可用。因此完成端口不是首选。建立一个TCP连接,然后大家共用,或许是解决的办法之一,这个办法需要解决数据包调度问题。如何解决?另外,端口复用会不会导致服务端增加连接?没分啦
仅有这么多

解决方案 »

  1.   

    最简单的编程方法是每个Class都建立一个异步TCP通讯
    我觉得这是最复杂的方法
      

  2.   

    最简单就是直接用remoting来实现,服务端写好访问的方法
    客户端直接调用remoting 来访问 remoting直接就是tcp tunnel的了
      

  3.   

    用IIS host wcf 不行吗?
      

  4.   

    你最无聊
    我可以把所有的请求都写成一个新的连接,但是运行起来可靠性可以吗?有些人用队列排队,PC上我也可以,但是我这个中间件要针对CE,队列基本不可用,因此才这么麻烦
    没耐心看题目,就别在这里胡扯