最近看资料提到过一种用TCP/IP Winsock实现变种Client/Server
里面说到:
  传统的Client/Server为客户问、服务答,收发是成对出现的。而变种的Client/Server是指在连接时有客户和服务之分,建立好通信连接后,不再有严格的客户和服务之分,任何方都可主动发送,需要或不需要回答看应用而言,这种方式在工控行业很有用,比如RTDB作为I/O Server的客户,但I/O Server也可主动向RTDB发送开关状态变位、随即事件等信息。在很大程度上减少了网络通信负荷、提高了效率。请问这种结构如何实现?本人现在正在写一个程序与其他模块之间的通信协议,这个程序类似上面说的任何方都可以主动发送消息。
感谢.晕 就2分了 以后可以补上

解决方案 »

  1.   

    好像UDP协议就可以这样吧,相互sendto和recvfrom
      

  2.   

    很容易实现的
    只要应用程序的接口协议层处理好就可以了
    我在自己的服务器+Client实现中,P2P指令处理就使用了这种方式
    关键在于指令引擎的处理一定要合适例如 登录成功后S应该开启两个引擎,一个负责READ,一个负责WRITE,针对SOCKET层的,
    READ方读入指令,处理后交WRITE或者其他工作线程处理,发送统一由WRITE处理同样,C也应该将READ/WRITE分开,并辅助以工作线程,但是READ/WRITE必须是全局统一,并带锁保护其他的,协议层定义好就可以了