我现在想做一个聊天工具。那么就有服务器端和客户端。我做的是C/S结构的。主要是采用Winsock控件的UDP进行网络数据的通讯。而我现在想要使用B/S结构,比如用asp开发,也能够像C/S界面那样的实现和服务端同样的功能。那么我的想法是在服务器上做一个后台的程序,然后让B/S 或 C/S的服务器界面都和那个那个后台程序进行通讯。但是始终想不好如何实现可以比较好我想要的这种功能。因为这个B/S结构不当可以发送winsock消息,还要可以查询数据库。而我又很想把这些功能分离出来,让后台变成一个通讯的接口,让C/S和B/S就成为一个显示的界面。即使C/S或B/S都关闭了,而后台还在那里运行就可以了,别人的客户端照样可以和我服务器端正常的进行通讯就可以了。请各位帮忙出出点子!

解决方案 »

  1.   

    我认为B/S(C/S)服务器-->后台程序-->客户端布置较为合理。也就是客户端与后台程序通信,然后后台程序与B/S(或C/S)服务器通信。要知道,B/S结构是以TCP协议为基础的,而你以前的客户端与服务器端是UDP协议,在增加了B/S服务器后,客户端与B/S服务器之间得有一个中间层。
      

  2.   

    B/S 不支持UDP协议,除非在网页中用WINSOCK控件,但受安全级别的限制
      

  3.   

    协议到不是问题,我可以都用TCP协议的,不用UDP协议的。
    我就是这个中间层如何做不是很清楚。
    我在想这个中间层上肯定会有一个winsock控件是和客户端连接的。
    那么我的B/S或C/S中 也用一个winsock和中间层的winsock进行通讯吗?
      

  4.   

    中间层像一个代理服务器,如果不改变客户端,中间层通过socket与客户端通信,同时中间层将请求也用socket发给B/S或C/S服务器。与B/S服务器的通信时,采用http协议。与C/S服务器通信时,保持以前与客户端通信的协议即可。
      

  5.   

    通讯跟程式采用的结构没有关系,不管你是C/S,B/S,还是其他什么东东,只跟采用的协议有关系。
      

  6.   

    要实现我说的这种,是不是现在比较流行的架构是否如VBToy所说的那种,采用Socket通讯的三层架构比较多。
    请问在VB中的socket是不是只有winsock一个控件?还是就是有socket这样的控件的?
      

  7.   

    这些及时信息是都可以通过winsock控件通讯来完成,那么还有一个数据库的查询如何处理呢?我需要从B/S结构的或C/S结构的后台管理平台去访问 中间层所管理的数据库,那还是通过winsock进行通讯返回数据吗?还是直接通过那些去访问那个数据库比较好,我的数据库是用access做的
      

  8.   

    如果能实现通信,对于数据库的处理,当然就是根据从客户端传来的数据对数据库进行操作,然后将结果用socket返回给客户端。
      

  9.   

    那数据库检索返回这么多记录都用socket返回啊.是不是有困难的.