Создайте сетевой сервер на языке Java, чтобы реализовать связь между клиентом и сервером, и поймите, что клиент имеет независимые потоки и не мешает друг другу.
Основные шаги по применению многопоточного чтения для реализации связи между сервером и многопоточным
Сервер Server.java
Пакет Test.concurrent.socket; импортировать java.io.*; импортировать java.net.inetaddress; импортировать java.net.serversocket; импортировать java.net.socket; /*** Создано Донгом 15-6-22. * Связь сокета на основе протокола TCP, реализовать пользовательский вход* Сервер* Сервер*/Общедоступный сервер класса {public static void main (string [] args) {try {// 1. Создайте гнездо на стороне сервера, то есть Serversocket, укажите граничный порт и прослушивает этот порт serversocket serversocket = new Serversocket (8888); Сокет сокет = null; // Записать количество клиентов int count = 0; System.out.println ("*** Сервер собирается запустить, ожидая ссылки клиента ***"); // цикл прослушивать, чтобы дождаться ссылки клиента, пока (true) {// вызов метода Accept (), чтобы начать прослушивание, ожидая, пока ссылка клиента = serversocket.accept (); // Создание нового потока ServerThread ServerThread = New ServerThread (Socket); // Запуск потока ServerThread.Start (); count ++; // Поиск по количеству клиентов System.out.println ("Количество клиентов:" + count); InetAddress address = socket.getinetAddress (); System.out.println («IP -адрес текущего клиента:» + address.gethostaddress ()); }} catch (ioException e) {e.printstacktrace (); }}} Серверная обработка потока класса ServerThread.java
Пакет Test.concurrent.socket; импортировать java.io.*; импортировать java.net.socket; /*** Создано Донгом 15-6-22. * Серверная обработка потока класс*/public Class ServerThread Extends Thread {// Сокет сокет сокет = null; public ServerThread (сокет сокета) {this.socket = сокет; } // Операция, выполненная потоком, отвечает на запрос клиента Public void run () {inputStream IS = null; InputStreamReader ISR = NULL; BufferedReader Br = null; OutputStream OS = null; Printwriter pw = null; try {// Получить поток ввода и прочитать информацию клиента = socket.getinputstream (); isr = new InputStreamReader (IS); // конвертировать байтовые потоки в потоки символов Br = new BufferedReader (ISR); // Добавить буферированную строку info = null; // цикл данных чтения while ((info = br.readline ())! = Null) {System.out.println («Я сервер, а клиент сказал:« +info); } socket.shutDownInput (); // Закройте поток ввода // Получить выходной поток в ответ на запрос клиента OS = socket.getOutputStream (); pw = new Printwriter (OS); // упаковано в виде печатного потока pw.write ("добро пожаловать"); pw.flush (); // кэшированный выход} catch (ioexception e) {e.printstacktrace (); } наконец {try {// закройте ресурс if (pw! = null) pw.close (); if (os! = null) os.close (); if (is! = null) is.close (); if (br! = null) br.close (); if (ocket! = null) ocket.close (); } catch (ioException e) {e.printstackTrace (); }}}} Client.java
Пакет Test.concurrent.socket; импортировать java.io.*; импортировать java.net.socket; /*** Создано Донгом 15-6-22. * Client*/public class client {public static void main (string [] args) {try {// 1. Создайте клиентский сокет, укажите номер порта сервера и сокет адреса сокета = New Socket ("LocalHost", 8888); // 2. Получить выходной поток и отправить информацию на сервер outputstream os = socket.getOutputStream (); // байтовый выходной поток printwriter pw = new PrintWriter (OS); // Оберните выходной поток как поток печати PW.Write ("Имя пользователя: TOM; пароль: 456"); pw.flush (); socket.shutdownoutput (); // ЗАКРЫТЬ ВОЗВРАЩЕНИЕ ВВОДНОГО СТРЕАМА IS = SOCKET.GETINPUTSTREAM (); InputStreamReader ISR = новый inputStreamReader (IS); BufferedReader BR = новый BufferedReader (ISR); String info = null; // Читать while (((info = br.readline ())! = Null) {System.out.println («Я клиент: сервер говорит:« + info); } br.close (); is.close (); isr.close (); pw.close (); os.close (); Socket.Close (); } catch (ioException e) {e.printstackTrace (); }}}Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.