-2

我正在尝试像 Skype-in​​stant messager 一样制作,我的想法是拥有一台服务器来处理客户端的多个连接。我现在拥有的是朋友列表等,但现在我想为服务器和客户端创建线程来处理对话。问题是每次对话我都需要在服务器和一个客户端之间建立多个连接(我认为)。但我不认为这是可能的。是否有人有另一种方法可以做到这一点,或者可能有一种方法可以在服务器和客户端之间建立多个连接?

谢谢你的协助

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

4

1 回答 1

1

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

然后你需要定义一个带有控制消息的协议,比如“create new conversation with ...”。服务器可以为每个新会话生成一个 guid,然后客户端可以通过一个连接始终接收和发送带有会话 id 的消息。

更新:

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

于 2012-07-06T16:03:19.653 回答