Druzya.org
Возьмемся за руки, Друзья...
 
 
Наши Друзья

Александр Градский
Мемориальный сайт Дольфи. 
				  Светлой памяти детей,
				  погибших  1 июня 2001 года, 
				  а также всем жертвам теракта возле 
				 Тель-Авивского Дельфинариума посвящается...

Библиотека :: Компьютеры и Программирование :: А.В. Фролов, Г.В. Фролов - Microsoft Visual J++
<<-[Весь Текст]
Страница: из 275
 <<-
 
мером порта.
   Что касается адреса IP, то он, очевидно, равен адресу IP узла, на котором 
запущено приложение сервера. В классе ServerSocket определен метод 
getInetAddress, позволяющий определить этот адрес:
public InetAddress getInetAddress();
   Тип сокета указывать не нужно, так как для работы с датаграммными сокетами 
предназначен класс DatagramSocket, который мы рассмотрим позже.
   Инициализация клиента
   Процесс инициализации клиентского приложения выглядит весьма просто. Клиент 
должен просто создать сокет как объект класса Socket, указав адрес IP 
серверного приложения и номер порта, используемого сервером:
Socket s;
s = new Socket("localhost",9999);
   Здесь в качестве адреса IP мы указали специальный адрес localhost, 
предназначенный для тестирования сетевых приложений, а в качестве номера порта 
- ззначение 9999, использованное сервером.
   Теперь можно создавать входной и выходной потоки. На стороне клиента эта 
операция выполняется точно также, как и на стороне сервера:
InputStream is;
OutputStream os;
is = s.getInputStream();
os = s.getOutputStream();
   Передача данных между клиентом и сервером
   После того как серверное и клиентское приложения создали потоки для приема и 
передачи данных, оба этих приложения могут читать и писать в канал данных, 
вызывая методы read и write, определенные в классах InputStream и OutputStream. 

   Ниже мы представили фрагмент кода, в котором приложение вначале читает 
данные из входного потока в буфер buf, а затем записывает прочитанные данные в 
выходной поток:
byte buf[] = new byte[512];
int lenght;
lenght = is.read(buf);
os.write(buf, 0, lenght);
os.flush();
   На базе потоков класса InputStream и OutputStream вы можете создать 
буферизованные потоки и потоки для передачи форматированных данных, о которых 
мы рассказывали раньше. 
   Завершение работы сервера и клиента
   После завершения передачи данных вы должны закрыть потоки, вызвав метод 
close:
is.close();
os.close();
   Когда канал передачи данных больше не нужен, сервер и клиент должны закрыть 
сокет, вызвав метод close, определенный в классе Socket:
s.close();
   Серверное приложение, кроме того, должно закрыть соединение, вызвав метод 
close для объекта класса ServerSocket:
ss.close();
   Конструкторы и методы класса Socket
   После краткого введения в сокеты приведем описание наиболее интересных 
конструкторов и методов класса Socket.
   Конструкторы класса Socket
   Чаще всего для создания сокетов в клиентских приложениях вы будете 
использовать один из двух конструкторов, прототипы которых приведены ниже:
public S
 
<<-[Весь Текст]
Страница: из 275
 <<-