Этот пример демонстрирует только простые функции, и код не является строгим, но только объясняет, как клиент может реализовать простой код, подключенный к серверу.
Код проверяет компиляцию и запуск среды под встроенным инструментом Eclipse, как показано на рисунке ниже:
Client echoclient.java код:
Пакет com.zhengzz.echo; import java.io.bufferedReader; import java.io.ioexception; импорт java.io.inputStreamReader; импорт java.io.printwriter; импорт java.net.socket; import java.net.unknownhostexcept ECHOC {Private Socket; IoException e) {e.printstacktrace (); true); println (br.readline ()); main (string [] args) {new echoc (). client ();Сервер echoserver.java код:
Пакет com.zhengzzz.echo; import java.io.bufferedreader; import java.io.ioexception; импорт java.io.inputstreamReader; import java.io.printwriter; импорт java.net.serversocket; import java.net.socket; Echos {Private Serversocke Serversocke; socket = serversocket.accep (); )); ("--->" + linestr); GS) {new Echos (). Server ();Мои результаты прямого отладки под инструментом Eclipse заключаются в следующем:
Давайте посмотрим на пример общения сокета Java-гнездового уровня. Процесс связи:
Сначала запустите сторону сервера и введите мертвый цикл, чтобы продолжать слушать, есть ли запрос на подключение для определенного порта. Затем запустите клиентскую сторону, клиент выдает запрос на соединение, и сервер слушает запрос и отправляет обратное сообщение клиенту. к другим запросам в мертвой петле. После того, как клиент входит в строку, нажмите Enter, чтобы отправить данные на сервер. Сервер читает данные и отвечает на данные клиента. После того, как запрос обрабатывается на этот раз, запущенная нить исчезает. Если клиент получает данные возврата, кроме «OK», он снова отправит запрос на подключение и отправит данные, и сервер снова запустит поток для подключения к ответу. Полем Полем Клиент выходит, пока данные о возврате, полученные клиентом, не станут "ОК".
Исходный код сервера:
Пакет Com.defonds.socket.begin; Socket; server = new Server (); Клиент был подключен подключен COOTE CLIENT = Serversocket.accep (); ); Data DataInputStream input = new DataInputStream (socket.getInputStream ()); Data System.out "); // Отправить строку, введенную строкой клавиатуры s = new BufferedReader (new InputStreamReader (System.in)). Readline (); out.writeutf (s); out.close (); input.close (); } catch (Exce Episode e) {System .out.println ("Сервер запустить исключение:" + e.getMessage ()); Exception e) {socket = null;Клиентский исходный код:
Пакет Com.defonds.socket.begin; Сокет; («Клиент запускается ...»); {// Создание потокового сокета и подключите его к указанному номеру порта в указанном хосте Socket = New Socket (ip_addr, port); // Отправить данные на сервер DataOutputStream Out = new DataOutputStream (socket.getOutputStream ()); readline (); ". Equals (ret)) {System.out.println (" Клиент закроет соединение "); Thread.sleep (500); Break;} out.close (); input.close ();} catch (исключение e ) {System.out.println ("Exception:" + e.getMessage ()); ;ПРИМЕЧАНИЕ. Когда выходной поток вывода сокета записывает метод данных writeutf, входной поток должен использовать readutf для чтения связанных данных. В противном случае будет брошено исключение EOFException.