�������� ������������ � Java � ���� 1

�����: ������� �����,

�������� ����������� ���. ������� ��������

Web-site: http://www.nakov.com

�������� �������: 12.04.2002

 

������ ��������� ������������ � Java� � ������������ �� ������, ����� �� ����������� �� ������������ �� Java � ���������� �� ��������-����������� ���������� � ��� �� ��� �� �������� �������� ��� �������� ����������:

�- Socket ������������ � ���������� �� Java ����������, ����� ����������� �� ��������/�������� �� ����������� TCP/IP, �������� Chat ������/�������, Web-�������, Mail ������/������� � ��.

- Java ������ � ���������� �� ����� Java ����������, ����� ����� �� �� �������� ��� Web �������� � �� �� ���������� �� Web-�������� �� �������.

- Web-���������� � ���������� �� Web ���������� � ������������ Servlets � Java Server Pages (JSP), ��������� � deploy-���� �� Web-���������� �������� ����������� �� Sun �� J2EE, ������ ��� ������� Tomcat.

�� �� ���� ������� ���������, � ���������� ���������� �� ���� ������� �������� �� ����������� �� ��������, ������������, Java � HTML. ������ �������� �� ����, ������ �� ���� ��������� �� ������� ����� (�����), ����� �� ����� ����������� � ������� �������������� ���� �� ����������. �� ��������� ���� � �������� � ���� � �������� �� �����: http://inetjava.sourceforge.net, ������ ��� ����� ������������ ���������� �� ������ (�� ��������� � ��������� ����), ����� � ����������� �����.

 

������ �� �������� � ������, �������, ���������, ������/������ ����������

�� ����� �� �������� ���� ����������� ���� �� ���������� �� �������� ����������, ��� �� ��������, ���� ��������, ��������� �������� �� ����� �� �������� ����������� �� ����� � ���������� �����. � ���� ���� �� ���������� �������� ���-������� ����, ����� ���� ����� ��������� ��� ��������� ������������ � Java. ������������, �� ��������� ��� ������� �������� �� ����������� �� �������� � ������ ���� �� ���������� �������� ����� ������������ ������� ���� �������� Web-������, ��������� � �.�.

������� ������� � �������� � IP �����. ���� � �������� 32-����� ����� �� ��������, ����� �� ������� ���� ������ 8-������ �����, ��������� �� ����� �� � �����. �� ��������� �� ������������� ����� �������� � �������� ����� IP ����� ����� �� ���� � ���. �������������� ����� IP �������� � ������� �� ���������� �� ��������� �� ��������� DNS �������, ����� ����� �� ������� IP ����� �� ��� �� �������� � ���������.

������������� ����� ���������� � �������� � ������������ �� ������� ����, ����� ������� �������� ��������:

������ ����� Java �������� ����� ����������� �� �������, ��� ������������ ���-������ ���� �� ����������, ���� ���������� Application ����. �������� �� �����, ����������� �� ������ Java ��������, ���������� �� ����������� �� ������������ ���� ����������� ����������� TCP ��� UDP. ������������� ���� �������� ��-������ ������ ���� �� ����������� �� ����� ���������� ����������, �������� IP ������, �� ���� �������� �� ����, � ���� ������ �� ���������� ���� ������� ��������� � ������ �� ��� ��-����� ����. ���� ����������� �� Java, �� � ���������� �� ����� � ������� �� ������ ����, �� ��� ��� ������ �� ����� ��������� ���� �� TCP � UDP ����������� ���������, ��������� � ���������� �� �������� ���� ��� �� ��� �� ���������� � �� IP ��������� ���������, ��������� � ���������� �� �����, �� ����� �������� � �������� �� ��� IP �����, �� ����� ����� �� �� �������� ��� ����.

TCP � ��������, ����� ��������� �������� ���������� �������������� ����� ����� ��� ����������. ����� �� ������� ���� ����� � ������, �� ����� �� ����������� ��������� ��������� ��������. ��������, ��� ������ �� �� ������ �� �������, ��� �������� ������� ����� � ������ ��� ������, �� ����������� ������ ����� ��� �������. ����������� ���� ������, ��� ����� �� ��������� � ���������� ����� �� ����� �������, �� �������, � ����� ���� �� ������� ������� �������� � �������� ��������. ������� �� ����������� �����, TCP ���������� ���������, �� �������, ��������� �� ������ ������ �� �������, �� �� ������� �� ������� ������ �� ������� ��� ��������� � �� � ����� ���, � ����� �� ���������. ��� ���� � ���������� �� ������� �������, �� �������� ������ � ��� �� ��������, �� ��� ������� ������� � ��������������� �����. ������ ������ ���� ���� ����������, TCP � ���-����� ������������ �������� �� �������� �� ���������� �� ��������. ������� �� ����������, ����� ����������� �� TCP �� Web-����������, Web-���������, FTP ��������� � ���������, Mail ��������� � ��������� � ����������, �� ����� ����� �� ��������� � ���������� �� ������� � ����� �����.

UDP � ��������, ����� ��������� ��������� � ���������� �� ����� ���������� ���� �� ���� ������ � �����, �������� ����������, �� ���� �������� �� ����. �� ������� �� TCP, UDP �� ��������� ���� ���� �� ���������� �� ����������� �������������� ����������, ���� ���������, �� �� �� ���������� ������. ����������� �� ���������� � ���� ��������� �� ���������� ����� �� ������: ����� �� ���������� �� ������� �� � ����� � ����� ����� � ���������� �� ����������. UDP �� �������� ���������� ��-����� �� TCP ������ ����, �� �� ��������� �������������� ����� �� �����, � ��������� ��������� ���� �� �������� ���������� ������ ������.

����� TCP, ���� � UDP ���������� ��������� ������������ �� �� ������������ ������� ���������� ������ ����� ��� ���������. �������� ����� �� ��������� ������� �������� Web-����� ���� ����� Web-������� � ������������ �� ������ ���� FTP ������� �������� ����� �� ���� ��� ������� FTP �������. ������ ���������� ���� � ���� ���������� (�������� ������ Web-�������) ������ ������������ ������� ���������� �������������� ������ �� ���� ��� ������� �������� �������, ���� �� ����� �� ��� ��������� ������� ����������. �� �� � �������� ������� ���������� �� ����������� �� ������� ������������, � ���������� �������� ����������, ������������� �� ����� �� ��� �� ����� ���������� �� ����, � �� �� ����� ����, �� �� ���� ����� ���������� �� ������ ������ �����. ������ �� �������� �� ���� �������� �� ��������� ��������� � ����������� TCP � UDP. ������ � ����� ����� 0 � 65536 � ������ ������������� �� �������� � ������� �� ��������. ����� TCP ��� UDP ����� ������� � ���� �� ����� �������, ����� �������, ��� 4 ������, �������� �� ���� �� ���� � �������� ������: source IP, source port, destination IP � destination port. �� IP �������� �� ����������� ����������, ��������� �� ��������� � ���������� �� ����������� ������, � �� ��������� �� ����������� ����������� ����������, �������� �� ���� ��������, ����� �������� ��� ������ �� ������� ������������ �� ���� ������. ����� TCP ������ � ����� ������ �� �������� ���������� �� ���� � IP �������� � ���� � IP ���������. ���������������� �����, ����� ���������� ���� TCP ������ �������� �����. �������� ���� ������ IP ����� � 212.50.1.81, � ��� ���������� Internet Explorer � Outlook Express. � Internet Explorer ��� ��������� ������� ���� � �� ����� ��� � ������� ������� ������ ��� IP ����� 212.50.1.1 �� ���� 80 � ����� ������� Web-�������� � ��������. � ������ ����� � Outlook Express �� ������ ������, � �� ����� ��� � ������� ����� ��� 192.92.129.4 �� ���� 110. � ���� ������ ����� ������� ������������ �������� TCP ������ (������� ���������� ���� �� ����� �������������� �����), ���� ����� ������ �������� ���������� � ����� ��� ���������. ����� �� �� ���������� ���������� �� ������� �����:

Internet Explorer = 212.50.1.81:1033 212.50.1.1:80 = Apache Web Server

Internet Explorer = 212.50.1.81:1037 212.50.1.1:80 = Apache Web Server

Outlook Express = 212.50.1.81:1042 192.92.129.4:110 = Microsoft Exchange POP3 Server

������� ������ ����� �� ��������� �� ������� Web-��������. �� ��� �� �������� ������������ Internet Explorer � �� ��� � ��������� ���� �������� 1033 �� ����� �������� (212.50.1.81). �� ��������� � ��������� ���������� 212.50.1.1 � ���� ��������� 80, ����� ���� � ������� � ������������, ����� �������� ������� �� Web-���������� �� ���� �������� � Apache Web Server. �������� � ��������� �� � ������ ����� ������, ������ ������ TCP ������ �� ����������, �.�. ����������� ��� ���������� ������ �� ����� �� ����� �� ��������, �� ��� ��� ����� �� ������� �� �������� ���� ����������, ����� � ������� �������� (�������� ������). ������� ������ ����� �� ��������� �� ������� �������� � ������� ����� �� �������, �� � ���� ������� � ������ ��������. ���� ���� �������� � ������� ���� � ������������ Internet Explorer �� ����� ��������, �� � ����� �����. �������, �� ����� ������ �� ����� ���� � ���� ����������, �� �� �������� � ����������, �.�. ������������� ��� ���������� ������ �� �����. ������ ����� �� ��������� �� ������� HTML ��������, � ������� �� ��������� �� ������� ��������. Web-�������� ���� �� ��� �� ����� ������ �� ������� HTML ��������� � �� ��� ����������. Internet Explorer ���� ���� �� ��� �� ����� ������ �� ��������� HTML ��������� � �� ��� ����������. ���� �� �������� �� ����� ��������, ����� � �������� �� ����� ������. ������ �������� �� ������ ����������� �� ������������� ������� ��� ��������� �� TCP �����. ���� ���� � �������� � ������� �� ��������. ������ ��������� �� ������ �� ����������� ������ � IP ������ ��������� �� ���������� �� ��������� � ������������, ��� ����� ���������� ���� �� �� ������. ������������ ������ �� ���� ������������� IP ������ � ����� �� ������������, � ����� ���� �� ��������� �����������.

����������� ��� ���� ����������, ����� ����������� �� TCP ��������� � ��������� � ���������. ����������� ���������� �� �������� ��� ����������� ���� ������� ����� ��� ���. �� ����� �� ������������� ����� ������� IP ������ � �������. ����������� ���������� ������� �� ��������� ���� � ����� ��������� ���������� �� �� ������ ��� ���. ��� ���������� �� ������ �� ������ �� ����� ������ �� �����, �� ����� �������� �����, �� ������� ����� �� ������ ����� ������� �� ������� ���� �������� � ������� �� ������� ���� ���������. ����������, �� ��������� ������� ������ ��� ���������, � ��������� �������� ������ ���� �� ��������� ������, �.�. �� �� ������� ������. ���� ������/������ ���������� ����� �� �� ���������� ���� ������� � ������� ����� � �������, ����� ��������� � ����. �������� ���� �� �� ������ � �������, � ������, �� ����� ����� ���� ������ � � ��������� ���� ����� � ��������. ������ ����� ��������, ��� �� �������, ���� ��� ���� �� ����� �� ����� �� ���������, ����� ������� (������� �� ������ ���� �� ������� ���� /���� �� ����� ����� ����� ��������� ����������/). ������ �������� ����� �� ���������� ����, ��� ������� �� �� ������ � ��������� (����������� �������������� ����� � ��������� ����� �� ��� � ����� ������) �� ��������� ����, ����� � ������� �������� (������������� �������� �������� �� �����������). ����� ���������, ���� � ������ ����� �� ��������� ������� ������� ������������, ��� �� �� ������ ���� �� ����. ���� ����������� �� ������������� �������� �� ������ (� ������� ������). ������������� ���������� ���� �� ������ ������� �� ��������, ��� ��� �� ����� ����������� ��� ���� ���� (�������� ���� �� ������� ������ �� ����� �����). �� �������� �������� ��� ������ ����� ������ � ����� ������ � �������� � ������ ���������������� ������/������ ����� ���� �� �� ������������ ���� �������������� ���������� �� ������/���������� �� ������.

�������� ������ �� ���������� ��-���� ������ ������������ Outlook Express, ����� �� ������������ � ���� 1042 �� ������ ������ (212.50.1.181) � ������������ Microsoft Exchange POP3 Server, ����� �� ������������ � ���� 110 �� �������� � IP ����� 192.92.129.4. ������������� TCP ������ �� ������ ������ �� ����� ���������� �� ������������� ������� �� �������� ������, ����� ������������� ���� ����� � source IP, source port, destination IP � destination port � ��� �� �������, ������������ �� ��� �� �� ������� �� ����������� ����������. ������ ���� ����������, ����� ������� ���� �� ������ ������ �� ���� ����� �� ����� ����� ����������, � ���-�������� �� �� ����, �� ������ �������� � ������ ��������� ������� �� ���� ����������� � ����������� ���������� ���������, �� � �������������� �� �������� � ������� �� ���� ���������� (��� ��-����� � ������� �� ��������).

��� UDP ������������� ����������� � ��������� � ������, ���� �� �� �� ����������� �������������� ����� ����� ������������, � �� �������� � ��������� ������� �������� ������. ���� ������ ����� � ���� �� ������ ������������ ���������� ���� TCP �������� � IP � ���� �� �������� � IP � ���� �� ���������. � ��� UDP ��������� ���� ��� ��������� � ��������� ���������� � �� ������ ����� ������������� ������� ���������� ��� ����� �� ��� ���������� �.

���������������� ������, �������� ������ �� �� ���������� �� ������������� �� �����������. ������� �� ���������� � ��������, �������� ������ �� ���������� ��� ������� �� ������� ������������� �������� � �� ������� ���� � ��������. � �������� ���������� ������ ���������� ���������� ��������� �� ����������� ����� ������������, ���� ����� �� ��� � ������� � ������� ������. ����� ������ ������ � ������� ��������. �������� �������� ������ �� Web-������ ������ �� ��������� HTTP, �������� �� ��������� �� e-mail ������ �� ��������� SMTP, � �������� �� ������ �� ���� �� FTP ������ ������ �� ��������� FTP. �� ����� �� ���� ���������� �������� ������ ��� � ���������� ���������� ������ �� �������, �� ����� ���� ������ �� ���������. ������������ ������� �� �������� �� �� �� ������ ����������� �� ��������� ����������, ������ ����� ��������� ���������� ������ �� ���� �� ���� IP ������ ��� ����� �� �������, �� ����� �� �������� ��������, �� ����� �� ���� ������, �� ���� � �����, �� ����� ���� ������ � ��������. ��� � ������� ���������� �������, ��������� � ������:

����

��������

������

21

FTP

������ �� ������ �� ���������� �������. �������� �� �� FTP ������� (�������� Internet Explorer, GetRight, CuteFTP)

25

SMTP

������ �� ��������� �� E-mail. �������� �� �� E-mail ������� (�������� Outlook Express)

80

HTTP

������ �� ������ �� Web-�������. �������� �� �� Web-�������� (�������� Internet Explorer)

110

POP3

������ �� ��������� �� E-mail �� �������� �����. �������� �� �� E-mail ������� (�������� Outlook Express)

Java ���������� ����� �� ��������� TCP � UDP ����������� �� ����������� ���� �������� ���� ��������� �� ������ java.net. �� ����� �� ����� ���������� � ������� ����������� �������, � ����� �� ����� �� �� �������� TCP � UDP ������/������ ���������� � InetAddress, Socket, ServerSocket, DatagramSocket, DatagramPacket, URL � ��., �� ����� ���� �� �������� ������ ������� �� ���������� �� ����/����� � ������������ ������������ � Java, ������ �� �� ����� ������ �� ��������� �� ��-���������� ��������.

 

����/����� � Java � ������ �������

� ���� ���� �� �������� ������ ������ ������� �� ���-������� ������� � ������ �� ���� � ����� � Java. ������ �������� ���� �� �� ������ � �������������� �� JDK 1.3.

� ����� Java ������-��������� �������� �� �������� �� ������ � ������ �� �����. �������� �� ������ �� �����, ��� ����� �������� �� ����������� ���� ��������������. ���������, ���� ����� �� ������������ ������-��������� �������� �� ������� � ������ java.io. ��� ��� ������� ���� ������ � �������� � �������.

���������� ������ ������ �� ������ � ������ �� �������� ����������, � ��������� � �� ������ � ������ �� ������� ����������. ����� �� ������ ������ �������� ������ � ����������� java.io.Reader, � �� ������ ������� �������� ������ � java.io.Writer. ���-������ �� ������ �� �������� ������ � ������ java.io.BufferedReader, ����� �������� ����� �� ������ �� ��� ������� ��� readLine(). �� ������ � �������� ������ � ���-������ ������ java.io.PrintWriter, ����� ��� ����� println(�). ��� ���� ����� ������ �� ���������� �� �������� ������ � ��������, ����� �������� �������� �� ������� ����:

import java.io.*;

import java.lang.*;

 

public class TextFileLineNumberInserter {

�� public static void main(String[] args) throws Exception {

������ FileReader inFile = new FileReader("input.txt");

������ BufferedReader in = new BufferedReader(inFile);

 

������ FileWriter outFile = new FileWriter("output.txt");

������ PrintWriter out = new PrintWriter(outFile);

 

������ int counter = 0;

������ String line;

������ while ( (line=in.readLine()) != null ) {

���������� counter++;

���������� out.println(counter + ' ' + line);

������ }

 

������ in.close();

������ out.close();

�� }

}

������ �� ���������, �� ������� �� Java ������ �������� � Unicode ���������, ���������� ������ ����� � ����� ��������� �� � Unicode, � ���� ��������� ������������ 8-���� �� ������. ��� ������ � ������ ������������ �� ����������� �� � ��� Unicode �� ������-��������� ������ �������, ����� ������� �������� ��������. ���� � ���� �� ���������, ������ ����� �� ����� �� ����������� ������� ���������� � �������� ������.

����� �� ������ ������ ������� ������ � ����������� java.io.InputStream, � �� ������ ������� ������� ������ � ����������� java.io.OutputStream. ������ ����� �� InputStream � ������� read(byte[] b), ����� ���� ����� �� ������� ����� � �� ������� � �����, � ������� ������ � OutputStream �� write(byte[] b, int off, int len), ����� ������� ����� �� ����� ��� �������� ����� � flush(), ����� �������� �������� � ������� �������� � ��� ����������.

����� � �� �� ������������ � �����, �� ����������� �� �����, ����� � �������, ���� � � ������� ������� ����� �� ������ ����������� ������� ���������. ��� ���� ��-������� � ������ ������ ������ ��������� ������� ��� �������� ����� �� �����, ������ �� ������ ������ flush(), �� �� ��� �������, �� ������� �� ���������� �� ������, � �� ����� � ����� �����. ��� � �������� �� ��������� ���, ����� ������ ������� �������:

FileInputStream inFile = new FileInputStream("input.bin");

FileOutputStream outFile = new FileOutputStream("output.bin");

byte buf[] = new byte[1024];

while (true) {

�� int bytesRead = inFile.read(buf);

�� if (bytesRead <= 0) break;

�� outFile.write(buf, 0, bytesRead);

}

outFile.close();

inFile.close();

 

������������ ������������ � Java

� ���� ���� �� �� ��������� � ������������� �� ������������ ������������ � Java, ��� ���� ������ �� �� �� ������ ���������� � ��-����������� �� ������.

�������������� (multithreaded) �������� ������������� ��������, ����� ����� �� ���������� ������������ ������� ������ �� ��������� ����������. ����� ������ ������ �� ��������� ���������� �������� thread (�����). ������������ �� ������������ �������� ����� ������� �� ���������� �� ������� �������� ������������. �������� � Microsoft Windows � �������� ������������ �� ������� ������, �� ������ ������� �� �������� � �� ��������� �����. ���� ��� �������� �� ���������� �� ��� �������� �������� (�������), ����� ������� ������������. ������ ������� ������� � ���� ����������� ������� ������� ������������, ���� �� ������ ��������������. ������ ������� ������� ����� � ������� �� ���� �������� ������� ������������, ���� �� ������ multithreading (��������������). �������� ��� ����� ��������, ����� ������ ���� Web-������ � Mail-������ ������������, �� ���� �������� ������ �� ��������� ������������ ���� 3 ���������� ����� � ���� �� ���������� �� Web �������� (�� �������� HTTP), ����� �� ��������� �� ���� (�� �������� SMTP) � ����� �� ������� �� ���� (�� �������� POP3). ����� ���� � ����� �������� �� ����� ���������� �� ���� �������� �� �� ������� �� ��� ���� �����, �� �� ���� ���� ���������� �� �� �������� ���������� � �� �� ���� ����� �� ����, ������ ��������� �������� ����������.

� Java ����������� �� ������������ �������� � ������������ �����. ���������� � �� �������� ����� java.lang.Thread � �� ���������� ������ run(), � ����� �� ������� ���������� ��� �� ������ �����. ���� ���� ����� �� ��������� ������ �� ����� ���� � � ��������� �� ������ �� start() �� ��������� ��������� ���������� �� ��������� � ��� ��������� ���. ��� ���� ������:

class MyThread extends Thread {

�� private String name;

�� private long timeInterval;

 

�� public MyThread(String name, long timeInterval) {

������ this.name = name;

������ this.timeInterval = timeInterval;

�� }

 

�� public void run() {

������� try {

���������� while (!isInterrupted()) {

�������������� System.out.println(name);

�������������� sleep(timeInterval);

���������� }

������ } catch (InterruptedException intEx) {

������ }

�� }

}

 

public class ThreadTest

{

�� public static void main(String[] args) {

������ MyThread thread1 = new MyThread("thread 1", 1000);

������ MyThread thread2 = new MyThread("thread 2", 2000);

������ MyThread thread3 = new MyThread("thread 3", 1500);

������ thread1.start();

������ thread2.start();

������ thread3.start();

�� }

}

���� ���������� �� ���� �������� �� �������� � ��������� 3 ����� �� ����� MyThread. ����� �� ��� � �������� ����� ������ �� ��������� ����� �� � ������� ������� ������������� �������� ����� ����� 1 � 2 �������. ������ ����� ����� ������� ���������, �� �������� �������� ������� �� ����:

thread 1

thread 2

thread 3

thread 1

thread 3

thread 2

thread 1

thread 3

thread 1

...

������ �� ���������, �� �������������� �� thread �� ������ �� ����� ����������� ���� ������ stop(), � thread-�� ������ ������ �� ���� ������� �� �������� �������� �� ���� ��������� �� interrupt(). ������ ����� thread � ���������� �� ��� ������ �� ���������, ���������� ������ isInterrupted(), ���� �� � ������� �� �������� �������� ��. ����� ��������� ������ �� ����� Thread �� setPriority(int), sleep()setDaemon() � �� ��� ����� �� �������� � ��������������. ���������� �� ������������� �� thread-��� �� �������� � ����� java.lang.Object � �������� wait()notify(), �� �� ��� �� ������� � ���������� ����.