Интернет Пресс - программы для Windows и Linux, статьи и материалы о компьютерах, бизнес-предложения.
Главная | Новости | Статьи | Веб-мастеру | Призы и подарки | Архив | RSS-канал | Карта сайта
Написать письмо автору сайта
Поиск
 

Статьи
Интернет
Software
Hardware
Операционные системы
Безопасность
Электронная коммерция
Пресс-релизы
Народные советы, медицина
SEO-поисковое продвижение сайтов
Автомобили
Строительство и недвижимость
Образование, спорт, отдых и туризм
Авторам
Добавить статью

Реклама


 

Интернет

Сокеты и Java
 | 14:40:00 , 12 Ноября 2004

Вам захотелось сделать свой чат? Вы уже поняли, что Вам придется изучить принцип сокетов? Ну тогда смею предложить Вам несколько простых шагов по созданию соединения между компьютерами в Интернете по средствам Java. Для начала не забудьте добавить в исходный код вашей программы java.net и java.io пакеты.

Вот три основных этапа создания нашего приложения:

- Сервер (Tim) - Создаём новый сокет, ожидающий запросы от клиента на 4444 порту.
- Клиент (Chris) - Создаём новый сокет, который будет конектиться к Tim на 4444 порт.
- Начинаем передачу данных между клиентом и сокетом.

Инициализация клиентского сокета выглядит следующим образом:

Socket clientSocket = null;
clientSocket = new Socket("Tim", 4444);

Этот сокет конектиться к компьютеру, названному нами Tim на 4444 порт. Обычно вместо названия Tim используют IP адресс этого компьютера. Но перед тем как мы попытаемся установить связь с серверо, необходимо, чтобы сервер ожидал наш запрос на установление связи, для это создади у сервера соке, и переведём его в режим ожидания входящих запросов:

Socket serverSocket = null;
serverSocket = new Socket(4444); //Notice no user to connect to this time.
serverSocket.accept(); //Accept a client.

Теперь приступим к передаче данных между Клиентом и Сервером.

Задача серверного сокета заключается в том, чтобы за один сеанс связи принять данные от клиента и сразу же передать клиенту ответ. Чтобы произвести такую операцию необходимо объявить потоки PrintWriter для вывода и поток BufferedReader для ввода. Причём объявить потоки необходимо как на сервере, так и на клиенте. Для простоты я покажу как это делается на клиенте:

PrintWriter out = null;
BufferedReader in = null;
Socket clientSocket = null;

clientSocket = new Socket("Tim", 4444);
//get the socket's ouput
out=new PrintWriter(clientSocket.getOutputStream(), true);
//get the socket's input
in=new BufferedReader(new inputStreamReader(clientSocket.getInputStream()));

Наверное я переусердствовал с цветами :) Теперь PrintWriter out будет выходным потоком, при записи в который, данные будут направляться в сокет. Если теперь выполнить out.println("Hello"), то строка hello будет отправлена серверу. Ну и в конце осталось посмотреть как сделать, чтобы приём информации на сервере шёл непрерывно:

PrintWriter out = null;
BufferedReader in = null;
Socket clientSocket = null;
String fromServer;

clientSocket = new Socket("Tim", 4444);
out = new PrintWriter(clientSocket.getOutputStream(), true);
in = new BufferedReader(new inputStreamReader( clientSocket.getInputStream()));

// Цикл до тех пор, пока есть поступающие сообщения
while ((fromServer = in.readLine()) != null) {
//Отображаем полученное сообщение
System.out.println("Server: " + fromServer);
}

out.close();
in.close();
clientSocket.close();

Я уверен, что найдётся много людей, которые не поймут эту статью. Но если вы прочитали и не поняли как сделать простой чат, то вероятно вам потребуется ещё раз прочитать руководство для начинающих :).

Источник: http://www.winsov.com



Версия для печати Версия для печати

Оценок этой статье - 6. Средний балл - 4.00 Просмотров - 21301

Выставить оценку статье:


Читайте также:

  • Обзор самых популярных онлайн-СМИ
  • Электронные библиотеки
  • Популярность сайта
  • Как подружиться с поисковыми машинами
  • Оптимизация сайта: проблема выбора
  • Создание универсального выпадающего меню
  • Программы автоматической регистрации сайта
  • Игровые сайты сети
  • Сравнительный тест эффективности языков программирования для WEB
  • Советы по созданию и раскрутке сайта
  • Как бесплатно сайт построить:
  • Java-апплеты и Gif-анимация
  • WWW - почтой
  • Вебсервер в домашних условиях
  • Некоторые секреты IP-протокола
  • Пластиковая карточка, как платежный инструмент
  • Практические советы по использованию DHTML

    Все статьи рубрики Интернет


  •  

    Реклама



    Поиск
     

    Размещение рекламы | Контакты

    Главная | Новости | Статьи | Веб-мастеру | Призы и подарки | Архив | RSS-канал | Карта сайта

    Вверх
    Copyright © 2004 - 2018 г. При перепечатке гиперссылка на «Интернет Пресс» обязательна.

     

    Rambler's Top100