Общение с несколькими клиентами через сокеты - PullRequest
1 голос
/ 24 ноября 2011

В качестве клиентов у меня есть сокет сервера и 3-4 андроид устройства. Я использую TCP / IP для связи. Какой самый лучший метод. Должен ли я использовать несколько портов для каждого клиента? Или я должен использовать тот же порт. Если используется та же функция, то как мне определить связь, адресованную разным устройствам?

Ответы [ 2 ]

1 голос
/ 24 ноября 2011

Нет, вам не нужно несколько портов.

ServerSocket server = new ServerSocket(port);
while (true)
{
    Socket socket = server.accept();
    // do something with this socket - aka 1 client

    new SomeClientClass(socket);
        InputStream in = socket.getInputStream();
        in.read(byte[]);
        OutputStream out = socket.getOutputStream;
        // out will only write response to its own client.

    // when this new SomeClientClassis created, method returns to this point 
    // in while loop and waits for the next client

}
0 голосов
/ 24 ноября 2011

Вы можете использовать один порт. Клиент может отправить вам свой идентификатор. Если это невозможно, вы можете посмотреть на IP-адрес клиента и узнать, какой он есть.

В Интернете существуют тысячи примеров кода клиент / сервер TCP, но я бы начал с примера кода, поставляемого с JDK,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...