Соединение через сокет является двусторонним, поэтому вы можете читать и писать по одному соединению. Это похоже на подключение проводной вилки к розетке, отсюда и название «розетка».
Вот как ты это делаешь
Socket socket = new Socket("10.0.0.1", 1234);
OutputStream os = socket.getOutputStream();
InputStream is socket.getInputStream();
new MyInputServiceThread(is).start();
теперь вы можете писать из ОС и читать из ОС. Вы можете сделать это в одном потоке или в разных потоках, если вы ожидаете, что они не будут синхронизированы.
На 2 вы можете иметь любое количество клиентов и серверных сокетов в одном приложении. По крайней мере теоретически. Есть практические ограничения. Для серверных сокетов вы можете принять соединение, а затем создать поток, проходящий через открытый сокет, и тогда ваш серверный сокет должен быть готов принять больше соединений. Другими словами, чтобы разрешить несколько подключений к одному и тому же порту, вы должны убедиться, что вы не блокируете его после принятия подключения. Однако вы также можете открывать более одного сокета сервера в нескольких потоках.
вот пример
ServerSocket server = new ServerSocket(1234);
while (true) {
Socket socket = server.accept();
// Once it spawns the thread that socket connection is serviced by
//the thread and the
//server socket is ready to accept new connections.
new Mythread(socket).start();
// above Mythread extends Thread....
}
Для приложения в качестве клиента ограничений нет. то есть столько, сколько вы хотите подключить.
Еще одно примечание... Для https вам также придется принимать сертификаты, что означает, что вам придется иметь дело с закрытыми открытыми ключами. Вы действительно хотите это сделать? поскольку tomcat и другие серверы приложений уже делают это. Если это будет веб-приложение, вам также нужно подумать о правильно подписанном цифровом сертификате. Если это интранет, то браузеры, используемые для доступа к нему, должны будут импортировать самогенерируемый самозаверяющий сертификат.
person
Sid Malani
schedule
21.12.2011