2013-04-09 3 views
0

У меня есть сервер сокетов, настроенный с использованием Adobe AIR, и я пытаюсь разрешить двум клиентам отправлять сообщения друг с другом с помощью сервера (это проект на базе Android, поэтому сервер должен действовать как средний человек на ПК). По какой-то причине сообщения, которые я отправляю, отправляются только тому же клиенту, из которого он пришел, а не другому. Я уже создал систему для определения того, откуда пришло сообщение, и как справиться с ним с другой стороны.Сервер Socket - отправка сообщений от клиента клиенту

Переменная 'connectionNum' int в основном представляет, является ли клиент числом 0 или 1, а данные, отправляемые на сервер и с сервера, имеют либо 0, либо 1 перед ним.

В идеале я хотел бы как-то направлять данные одному конкретному клиенту за раз, вместо того, чтобы пытаться отправить его как с int в начале каждого сообщения.

На данный момент только сообщения второго клиента для подключения отправляются через сервер, первый отправляет пустое сообщение, не зная почему.

ответ

5

В настоящее время на сервер отправляется только второй клиент для сообщений, первый отправляет пустое сообщение, не зная почему.

Это происходит потому, что у вас есть только один clientSocket объект на сервере, и вы перезаписать его, когда кто-то связывает, поэтому, когда второй клиент подключается вы теряете первых клиентов сокет. Когда вы вызываете sendData на сервер, он всегда использует clientSocket, который является последним.

Для исправления этого вам нужен массив из clientSocket объектов на сервере. Затем вы можете выбрать правильный, чтобы отправить сообщение или отправить сообщение всем клиентам, если вы хотите транслировать сообщение.

+0

Большое вам спасибо, мне очень помогли! –

+0

Добро пожаловать. –

Смежные вопросы