公司要编写一个TCP/IP服务,用来转发消息。对这方面知识比较缺乏,希望各位能给予帮助。程序功能不是很多,但是必须要求稳定。而且消息量比较大,需要也缓存队列。
希望各位大侠提供一些比较完备的方案。以及相关知识的介绍。

解决方案 »

  1.   

    提一点设想:消息需要对客户端具有“通知”机制。但是客户端往往是隐藏在局域网网关、路由器、防火墙之后的,所以往往需要在服务器端建立“消息”对象来让客户端发送和读取。例如客户端可能有一个“消息网关”类对象,具有两个方法(Send 和 Receive),并定期到服务器上读取消息并且触发事件(Event)通知本地其它对象。当然服务器端 TCP/IP 服务就需要制定两个信令,识别Send和Receive命令,并且返回需要的结果。服务器端也许需要维护客户端的单点登录机制,以便在客户端发送和获取数据时必须提供登录之后身份授权号以便服务端识别其身份的真伪。这样就需要在服务器端在增加一个信令用来根据客户端传送的用户名/密码来产生新的身份授权号。对消息对象类需要设计,并且可以序列化/反序列化(例如xml格式)。客户端“消息对象”、“消息网关”、“单点登录”对象,作为一个project或者.dll被所有客户端共享。
      

  2.   

    还可能需要考虑加密/解密,对上述相关对象进行改造或者扩展即可。这是比较简单的设计,只能完成简单的功能,好处是对于信令的编码、解码、加密、解密等你自己可以控制,并且也比较“高效”。缺点是肯定不如 WebService 那一类东西功能强大,有一点点“重新发明车轮子”的感觉。不过也还是有很多理由需要自己发明这种车轮子的。
      

  3.   

    还有在.net中用那些类处理这种服务比较好socket么
      

  4.   

    能介绍一下:阻塞和非阻塞模式,以及 在.net中的应用;,谢谢