�����: ������� �����,
�������� ����������� ���. ������� ��������
��������
�������:
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. ������ �������� ���� �� �� ������ � �������������� �� 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, ��� ���� ������ �� �� �� ������ ���������� � ��-����������� �� ������.
�������������� (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(), �� �� ��� �� ������� � ���������� ����.