如何实现客户端之间的p2p通信
情况是:
多个客户端可以通过SOCK_STREAM类型的socket连接到服务器上,我现在想实现客户端之间的对等通信(用SOCK_DGRAM)。
我的想法是:
在客户端再创建一个socket,类型为SOCK_DGRAM,但是这样的话,就还应该绑定一个端口(假设为SOCK_DGRAM_PORT),同时该端口应该是随机的,要不然一台机器只能运行一个客户端了?
接下来,客户端A为了与客户端B通过sendto发送消息,就该知道B的SOCK_DGRAM_PORT端口。由于A与B没有建立连接,就得通服务器获取B的SOCK_DGRAM_PORT端口,所以在客户端B上线时,服务器就应该保存B的SOCK_DGRAM_PORT端口,从而,服务器为了获取客户端B的SOCK_DGRAM类型socket的消息,也应该有一个SOCK_DGRAM类型的socket来接收。
也不知道我的想法行不行。同时我也觉得太麻烦了,感觉效率也不高。各位前辈是怎么做的呀?我该补充哪些知识呢?或者大家有没有好的文章推荐?求指教。