0

我有一个使用 Adob​​e AIR 设置的套接字服务器,我试图允许两个客户端使用服务器在彼此之间发送消息(这是一个基于 Android 的项目,因此服务器必须充当 PC 上的中间人)。出于某种原因,我发送的消息只被发送回它来自的同一个客户端,而不是发送给另一个客户端。我已经建立了一个系统来识别每条消息的来源,以及如何在另一端处理它。

变量'connectionNum' int 基本上代表了客户端是数字0还是1,并且发送到服务器和从服务器发送的数据前面有0或1。

理想情况下,我想要一种将数据一次定向到一个特定客户端的方法,而不是尝试在每条消息的开头使用 int 将其发送到两者。

目前,只有第二个客户端连接的消息实际上是通过服务器发送的,第一个发送一个空白消息,不知道为什么。

4

1 回答 1

5

目前,只有第二个客户端连接的消息实际上是通过服务器发送的,第一个发送一个空白消息,不知道为什么。

这是因为您在服务器上只有一个clientSocket对象,并且当其他人连接时您正在覆盖它,所以当第二个客户端连接时,您将丢失第一个客户端套接字。当您sendData在服务器上调用时,它总是使用clientSocket最后连接的人。

要解决此问题,您需要clientSocket服务器上的一组对象。然后,如果要广播消息,您可以选择正确的发送消息或将消息发送给所有客户端。

于 2013-04-09T18:42:46.720 回答