0

首先对冗长的标题感到抱歉,但考虑到我的问题,我无法想出合适的标题。

现在来解决问题。我正在创建一个点对点聊天应用程序,它能够发送和接收文件,同时还能够与个人联系人聊天。

我知道我可以捕获连接到服务器的客户端的 ip 并将其存储,然后当该用户开始与另一个人聊天时。我可以使用存储的 ip 在使用 ServerSocket 的两个客户端之间创建连接。

但是出于安全原因,我不希望将一个用户的 ip 传递给另一台用户的计算机,所以,我要问的基本上是有一种方法可以将两个客户端连接在一起,而无需将每个客户端的 ip 传递给每个客户端。

所以例如

(all sockets have read / write buffers )

Client 1-- logs in --> Server ( a session ID 1 is created between the client 1 and server )
Client 2-- logs in --> Server ( a session ID 2 is created between the client 2 and server )

Client 1 --- Starts chat with client 2 ---> Server ( server connects session 1 and session 2)

Client 1 can then chat and send files to client two without passing it the ip.

如果这是一个不清楚的问题甚至是愚蠢的问题,我很抱歉,但我什至想不出谷歌这个问题的方法。

4

1 回答 1

0

您需要通过服务器运行连接。您可以使用服务器来缓冲两个客户端之间的连接,并以一种看起来几乎无缝的方式连接它们的通信。

例如,您可以创建一个线程,只要两个客户端都连接,等待来自客户端 1 的输入并立即将其通过管道传输到客户端 2。反之亦然。这是您正在寻找的解决方案吗?

于 2013-01-31T00:14:10.123 回答