请问如何实现,A访问B建立一个socket,B访问C建立一个socket,可否让A与B建立的socket直接交给C,之后让C直接和A交互,不用通过B就能实践数据交互。
你说的这个需求只有两种方式:
1.通过B做中转,典型的例子就是代理服务器,比如通过proxy server上网
2.B把C的ip和端口发给A,然后A直接和C建立连接,典型的应用就是点对点的即时通信工具,比如qq。
socket是与地址、端口绑定的
如果A和C在网络上是可以ping通的话,而且允许A知道C的IP和端口的话,可以直接从A向C发起SOCKET连接,和B没有任何关系。
如果A和C在网络上是无法ping通的话,那么只能通过B做中转。
如果C的IP和端口号是由B来动态决定的话,那么可以先向B发起SOCKET连接,然后B把C的IP和端口号返回给A,然后A再向C发起SOCKET连接。