JAVA将服务器套接字连接到另一个服务器套接字(例如客户端到客户端)?

时间:2013-01-31 00:09:06

标签: java p2p serversocket

首先,对于长篇大论的遗产感到抱歉,但考虑到我的问题,我无法想到一个合适的头衔。

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

我知道我可以捕获连接到服务器的客户端的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.

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

1 个答案:

答案 0 :(得分:0)

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

例如,您可以创建一个线程,只要两个客户端都连接,就等待客户端1的输入并立即将其传送到客户端2.反之亦然。这是你想要的那种解决方案吗?