Telekom

  • 19 сент. 2012 г.
  • 378 Слова
Вам захотелось сделать свой чат ? Вы уже поняли, что Вам прийдётся изучить принцып сокетов? Ну тогда смею предложить Вам несколько простых шагов по созданию соединения между компьютерами в интернетепо средствам 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 aclient.
Теперь приступим к передаче данных между Клиентом и Сервером.
Задача серверного сокета заключается в том, чтобы за один сеанс связи принять данные от клиента и сразу же передать клиенту ответ.Чтобы произвести такую операцию необходимо объявить потоки PrintWriter для вывода и поток BufferedReader для ввода. Причём объявить потоки необходимо как на сервере, так и на клиенте. Дла простототы япокажу как это делается на клиете:
PrintWriter out = null;
BufferedReader in = null;
Socket clientSocket = null;

clientSocket = new Socket("Tim", 4444);
//get the socket's ouput
out=newPrintWriter(clientSocket.getOutputStream(), true);
//get the socket's input
in=new BufferedReader(new inputStreamReader(clientSocket.getInputStream()));
Наверное я переусердствовал...
tracking img