我使用Adobe AIR设置套接字服务器,我试图允许两个客户端使用服务器在彼此之间发送消息(这是一个基于Android的项目,因此服务器必须充当中间人PC)。出于某种原因,我发送的消息只被发送回它来自的同一客户端,而不是发送给另一个客户端。我已经建立了一个系统来识别每条消息的来源,以及如何在另一方面处理它。
变量'connectionNum'int基本上表示客户端是编号0还是1,并且发送到服务器和从服务器发送的数据在其前面有0或1。
理想情况下,我想要一种方法将数据一次定向到一个特定的客户端,而不是尝试在每条消息的开头用int发送数据。
目前,只有连接第二个客户端的消息实际上是通过服务器发送的,第一个发送空白消息,不确定原因。
答案 0 :(得分:5)
目前,只有连接第二个客户端的消息实际上是通过服务器发送的,第一个发送空白消息,不确定原因。
这是因为您在服务器上只有一个clientSocket
对象,并且当其他人连接时您将覆盖它,因此当第二个客户端连接时,您将丢失第一个客户端套接字。当您在服务器上拨打sendData
时,它始终使用clientSocket
,这是最后连接的人。
要解决此问题,您需要服务器上有一组clientSocket
个对象。然后,如果要广播消息,您可以选择正确的消息发送消息或将消息发送给所有客户端。