请教一个问题。同一应用程序中是否可以同时存在TCP和UDP?就是客户机与服务器TCP连接,服务器实时监控客户机动态。但是当服务器开启同步教学功能时,服务器改用UDP发组播消息。这个要怎样实现啊?
在网上搜索资料说是在应用一种连接时断开另一种,切换过来。但是如果服务器先前已经和很多客户端建立了TCP连接,此时如果断开TCP连接切换到UDP上去,以后怎么切换回来到TCP连接啊?

解决方案 »

  1.   

    你创建一个TCP服务器侦听,创建一个TCP服务器侦听,必要的时候关闭一个连接,创建到另一个上,不知道这种方法可行不?
      

  2.   

    可以同时开启TCP和UDP 只要两个的端口不同即可
      

  3.   

    TCP和UDP可以同时开启;端口相同也可以可以;可以用TCP监控连接以后在开启UDP;
      

  4.   

    up 遇到同样的问题。。
    每次切换的 时候总会报错。。sockcore.cpp  575  学习
    我是做短信发送方式切换的。。
    感觉是资源没有释放需要实时修改端口和IP地址卡在这里了学习
      

  5.   

    #4楼对。
    一个活动的TCP/UDP socket就是一7元组,<af,sock_type,protocol_type,local_ip,local_port,remote_ip,remote_port>,只要这个元组中有一个分量不同,就可以存在两个socket实体(反过来,在一个网域中,完全一样的两个socket 7元组是不可能同时存在的)。所以完全可以在一台主机上有两个一样的UDP TCP端口工作,无论是客户端还是服务器。而且有很多应用就是这么做的,比如Windows的局域网协议SMB,同时在UDP TCP 445上工作。
    我不很了解LZ的需求,但是有一种做法是,TCP作为控制平面传控制消息,例如RTCP,你也可自己设计。UDP作为媒体平面传数据,像RTP,同步拥塞什么的受TCP上消息的控制。
    另外,什么时候中文的“TCP切换”沦为这个概念了……,TCP handoff不是做负载均衡的么。