TCP
Протокол TCP является ориентированным на соединение и гарантирует высокую надежность (данные без потерь, данные без беспорядка, данные без ошибок и данные без дубликата).
TCP устанавливает связь через три рукопожатия. Соединение должно быть удалено при завершении связи. Поскольку TCP подключен к соединению, его можно использовать только для сквозной связи.
Эта статья в основном представляет соответствующий контент Java с использованием TCP для реализации простого чата. Это обменивается вашей ссылкой и обучением. Я не скажу многое ниже. Давайте посмотрим на подробное введение вместе.
Пример кода
Простая функция чата реализована с использованием протокола TCP (очень просто)
Мысль: используйте 2 потока, один поток используется для получения сообщений, а другой поток используется для отправки сообщений.
Демо -код клиента:
открытый класс SendDemo {public static void main (string [] args) бросает исключение {сокет сокет = новый сокет (inetAddress.getLocalhost (), 8888); SendImpl sendImpl = new SendImpl (сокет); // Отправить поток новый поток (sendImpl) .start (); // Приема потока reciveimpl reciveimpl = new ReciveImpl (сокет); новый поток (ReciveImpl) .start (); }}Демо-код на стороне сервера:
открытый класс ServerDemo {public static void main (string [] args) бросает исключение {serversocket serversocket = new Serversocket (8888); Сокет сокет = serversocket.accep (); SendImpl sendImpl = new SendImpl (сокет); новый поток (sendImpl) .start (); Reciveimpl reciveimpl = new ReciveImpl (сокет); новый поток (ReciveImpl) .start (); }}Демо -код для отправки потока:
открытый класс SendImpl реализует Runnable {Private Socket Socket; public sendimpl (сокет сокета) {this.socket = socket; // TODO Автогенерированный конструктор stub} @Override public void run () {Scanner Scanner = New Scanner (System.in); while (true) {try {outputStream outputStream = socket.getOutputStream (); String string = scanner.nextline (); outputStream.write (String.getBytes ()); } catch (ioException e) {// todo автоматически сгенерированный блок e.printstacktrace (); }}}}Демо -код для получения потока:
открытый класс ReciveImpl реализует Runnable {Private Socket Socket; public reciveimpl (сокет сокета) {this.socket = сокет; // TODO Автогенерированный конструктор stub} @Override public void run () {while (true) {try {inputStream inputStream = socket.getInputStream (); байт [] b = новый байт [1024]; int len = inputstream.read (b); System.out.println ("Сообщение получено:"+новая строка (b, 0, len)); } catch (ioException e) {// todo автоматически сгенерированный блок e.printstacktrace (); }}}}Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.