java服务器和一个客户端之间的多个连接

java服务器和一个客户端之间的多个连接,java,networking,Java,Networking,我想让它像一个skype即时消息,我的想法是 一台服务器,为客户端处理多个连接。我现在有一个朋友列表等,但现在我想为服务器和客户端创建线程来处理对话。问题是,我认为每次对话都需要在服务器和客户端之间建立多个连接。但我认为这是不可能的。是否有人有其他方法来实现这一点,或者在服务器和客户端之间建立多个连接 谢谢你帮我 PS:英语不是我的主要语言,所以请原谅我的语法。我认为最好的方法是,您总是从每个客户端到服务器建立一个tcp连接,这样,如果您的客户端位于防火墙或路由器后面,则无论如何都可以建立连接

我想让它像一个skype即时消息,我的想法是 一台服务器,为客户端处理多个连接。我现在有一个朋友列表等,但现在我想为服务器和客户端创建线程来处理对话。问题是,我认为每次对话都需要在服务器和客户端之间建立多个连接。但我认为这是不可能的。是否有人有其他方法来实现这一点,或者在服务器和客户端之间建立多个连接

谢谢你帮我


PS:英语不是我的主要语言,所以请原谅我的语法。

我认为最好的方法是,您总是从每个客户端到服务器建立一个tcp连接,这样,如果您的客户端位于防火墙或路由器后面,则无论如何都可以建立连接

然后,您需要定义一个带有控制消息的协议,如“与…创建新对话”。服务器可以为每个新会话生成guid,然后客户端可以始终通过一个连接接收和发送会话id为的消息

更新:


回答原始问题:是的,您可以在客户端和服务器之间建立多个连接。每个连接都应该从客户端打开到服务器端口,一旦建立,每个连接都将有一个不同的端口。您可以创建一个线程来处理每个连接,也可以让线程上的线程使用非阻塞调用来处理所有连接。

您尝试了什么?为什么您认为每个“调用”不可能有一个sochet?我的目标是在一个端口中完成这一切,但感谢协议消息的建议!你要用这个吗