none
about socket problem RRS feed

  • 问题

  • 如果是客户端和客户端通讯,类似于QQ,连接的两端没有服务器,都是客户端,该怎么处理?

    谢谢

    2011年7月4日 4:24

答案

  • 如果是在同一个内网,或者一个内网,一个在公网或者两个都在公网都没有问题。如果两个都在内网并且是在不同的内网,需要在路由器上做对应的端口映射,否则无法连接。
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年7月5日 0:11
    版主
  • 你这个问题是点对点连接,就是现在流行的P2P技术。

    楼上说的不全对,如果直接用socket连接的话,你得机器必须都在同一个网段(同一局域网)

    要是你想连接到外面的主机,需要利用UDP打洞技术,而且只能用UDP协议来收发数据(BT的技术)。这个技术也是必须要有中转主机的。

    要是你的主机都在同一个局域网,最简单的办法是用广播的方式来实现多台主机互联


    0xBAADF00D
    2011年7月16日 13:47
    版主
  • UDP打洞需要借助第三方公网服务器,而lz的问题是没有这个服务器,要显示互通信只能从路由器上做端口映射入手
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年7月17日 2:36
    版主

全部回复

  • 如果是在同一个内网,或者一个内网,一个在公网或者两个都在公网都没有问题。如果两个都在内网并且是在不同的内网,需要在路由器上做对应的端口映射,否则无法连接。
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年7月5日 0:11
    版主
  • 如果不是两个,而是3个或者是几十个之间的通讯,怎么处理?

    2011年7月5日 8:28
  • 如果不是两个,而是3个或者是几十个之间的通讯,怎么处理?


    和上面的类似
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年7月11日 0:10
    版主
  • 你这个问题是点对点连接,就是现在流行的P2P技术。

    楼上说的不全对,如果直接用socket连接的话,你得机器必须都在同一个网段(同一局域网)

    要是你想连接到外面的主机,需要利用UDP打洞技术,而且只能用UDP协议来收发数据(BT的技术)。这个技术也是必须要有中转主机的。

    要是你的主机都在同一个局域网,最简单的办法是用广播的方式来实现多台主机互联


    0xBAADF00D
    2011年7月16日 13:47
    版主
  • UDP打洞需要借助第三方公网服务器,而lz的问题是没有这个服务器,要显示互通信只能从路由器上做端口映射入手
    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.
    2011年7月17日 2:36
    版主