자바 소개 및 자바 이해 (2, 7)

JAVA 네트워크 프로 그래 밍 네트워크 기초 지식 네트워크 프로 그래 밍 의 목적 은 네트워크 프로 토 콜 을 통 해 다른 컴퓨터 와 직접 또는 간접 적 으로 통신 하 는 것 을 말한다.컴퓨터 네트워크 의 형식 이 다양 하고 내용 이 복잡 하 다.네트워크 상의 컴퓨터 는 서로 통신 하려 면 반드시 일정한 협 의 를 따라 야 한다.현재 가장 광범 위 하 게 사용 되 는 네트워크 프로 토 콜 은 인터넷 에서 사용 되 는 TCP / IP 프로 토 콜 이다.IP 주소: 컴퓨터 는 네트워크 에서 유일한 표지 로 인터넷 에 비해 IP 는 논리 적 주소 입 니 다.IP 주 소 는 A 류 주소, A 류 주소 의 첫 번 째 바 이 트 는 네트워크 주소 이 고 다른 3 개의 바 이 트 는 호스트 주소 입 니 다.또 첫 번 째 바이트 의 최고 위 는 0 으로 고정 됐다.A 류 주소 범위: 1.0.0.1 에서 126.155.255.254.A 류 주소 의 개인 주소 와 보존 주소: 10.0.0.0 에서 10.25.255.255 는 개인 주소 (이른바 개인 주 소 는 인터넷 에서 사용 하지 않 고 국 역 네트워크 에 사용 되 는 주소) 입 니 다.127.0.0.0 에서 127.255.225.255 는 주 소 를 보류 하고 순환 테스트 용 으로 사용 합 니 다.B 류 주소 B 류 주소 1 바이트 와 2 바 이 트 는 네트워크 주소 이 고 다른 2 바 이 트 는 호스트 주소 입 니 다.또 첫 번 째 바이트 의 앞 두 자 리 는 10 으로 고정 됐다.B 류 주소 범위: 128.0.0.1 에서 191.255.255.254.B 류 주소 의 개인 주소 와 보존 주 소 는 172.16.0.0 에서 172.31.25.255 로 개인 주소 169.254.0.0 에서 169.254.255.255 로 보존 주소 입 니 다.IP 주소 가 자동 으로 IP 주 소 를 가 져 오 는 것 이 고 인터넷 에서 사용 가능 한 DHCP 서버 를 찾 지 못 하면 169.254.0.0 에서 169.254.255.255 에서 IP 주 소 를 얻 을 수 있 습 니 다.C 류 주소 C 류 주 소 는 1 바이트, 2 바이트, 3 바이트 가 네트워크 주소 이 고 4 번 째 바 이 트 는 호스트 주소 입 니 다.또 첫 번 째 바이트 의 3 위 는 110 으로 고정 됐다.C 류 주소 범위: 192.0.0.1 에서 223.255.225.254.C 류 주소 중의 개인 주소: 192.168.0.0 에서 192.168.225.255 는 개인 주소 입 니 다.D 클래스 주소 D 클래스 주 소 는 네트워크 주소 와 호스트 주 소 를 가리 지 않 고 첫 번 째 바이트 의 네 번 째 위 치 는 1110 으로 고정 되 어 있 습 니 다.D 류 주소 범위: 224.0.0.1 에서 239.255.255.254 Mac 주소: 모든 네트워크 카드 전용 주소 도 유일 합 니 다.포트 (port): 응용 프로그램 (프로 세 스) 의 표지 (네트워크 통신 프로그램) OS 에는 65536 (2 ^ 16) 개의 포트 가 있 고 프로 세 스 는 포트 를 통 해 데 이 터 를 교환 할 수 있 습 니 다.연결 할 때 IP 를 입력 해 야 하고 포트 정 보 를 입력 해 야 합 니 다.컴퓨터 통신 의 실제 호스트 간 프로 세 스 통신 은 프로 세 스 통신 이 포트 에서 연결 되 어야 합 니 다.192.168.0.23: 21 협의: 네트워크 의 데이터 교환 (통신) 을 위해 설립 된 규칙, 기준 또는 약정 은 통신 의 안전 을 확보 하기 위 한 것 이다.서로 다른 층 의 협 의 는 완전히 다르다.네트워크 층: 주소 찾기, 경로 (주소 에 어떻게 도착 하 는 과정 을 말 함) 전송 층: 포트 연결 TCP 모델: 응용 층 / 전송 층 / 네트워크 층 / 네트워크 인터페이스 층 과 층 간 은 단 방향 의존 관계 이 고 상층 은 하층 에 의존 하 며 하층 은 상층 에 의존 하지 않 으 며 층 과 층 간 의 연결 은 가상 연결 이다.대등 층 간 에 협 의 를 세우다.포트 는 추상 적 인 소프트웨어 구조 로 협의 와 관련 이 있다. TCP 23 포트 와 UDT 23 포트 는 두 개의 서로 다른 개념 이다.포트 는 1024 이상 의 포트 를 사용 해 야 하 며, 아래 의 포트 는 모두 기능 을 설정 했다.TCP / IP 모델 애플 리 케 이 션 (FTP, HTTP, TELNET, POP 3, SMPT) Transport (TCP, UDP) Network (IP, ICMP, ARP, RARP) Link (Device driver,...) 주: IP: 주소 지정 과 경로 ARP (Address Resolution Protocol) 주소 분석 프로 토 콜: IP 주 소 를 Mac 주소 RARP (Reflect Address Resolution Protocol) 로 변환 하 는 반상 주소 분석 프로 토 콜: 상 반 된 ICMP(Internet Control Message Protocol) 링크 연결 상 태 를 감지 합 니 다. 이 프로 토 콜 을 이용 한 도구: ping, traceroute
TCP SocketTCP 는 Tranfer Control Protocol 의 약칭 으로 연결 을 위 한 신뢰 할 수 있 는 전송 을 보장 하 는 프로 토 콜 입 니 다. TCP 프로 토 콜 을 통 해 전송 되 는 것 은 순서 적 으로 오류 가 없 는 데이터 흐름 입 니 다. 전송 자 와 수신 자의 쌍 을 이 루 는 두 socket 사이 에 TCP 프로 토 콜 을 바탕 으로 통신 할 수 있 도록 연결 을 만들어 야 합 니 다. socket (보통 server socket)연결 을 기다 리 는 동안 다른 socket 은 연결 을 요구 할 수 있 습 니 다. 이 두 socket 이 연결 되면 양 방향 데이터 전송 을 할 수 있 습 니 다. 쌍방 이 전송 하거나 수신 할 수 있 습 니 다. 1) 서버 는 포트 번 호 를 할당 하고 서버 는 accept () 를 사용 합 니 다.방법 은 클 라 이언 트 의 신 호 를 기다 리 고 있 습 니 다. 신 호 는 socket 연결 을 열 때 까지 socket 에서 OutputStream 과 InputStream 을 가 져 옵 니 다.TCP 서버 엔 드 프로그램 을 만 드 는 절차: 1). ServerSocket 2 를 만 듭 니 다). ServerSocket 에서 클 라 이언 트 연결 요청 을 받 습 니 다 3). 서비스 스 레 드 를 만 들 고 새로운 연결 을 처리 합 니 다 4). 서비스 스 레 드 에서 socket 에서 I / O 흐름 5 를 얻 습 니 다. I / O 흐름 에 대해 읽 기와 쓰기 작업 을 하고 클 라 이언 트 와 의 상호작용 을 완료 합 니 다 6). I / O 흐름 7 을 닫 습 니 다. Socket ServerSocket server = new ServerSocket (post) 을 닫 습 니 다.Socket connection = server. accept (); Object InputStream put = new Object InputStream (connection. getInputStream ()); Object OutputStream put = new Object OutputStream (connection. getOutputStream ()); 입 출력 흐름 처리; 흐름 과 socket 을 닫 습 니 다. 전형 적 인 서버 엔 드 입 니 다.
public class Server1 {
public static void main(String[] args) throws Exception {
ServerSocket ss=new ServerSocket(9000);
while(true){
Socket s=ss.accept();//    Socket  。
Thread t=new Thread1(s);//  Socket。
t.start();
}
}
}
class Thread1 extends Thread{
Socket s;
public Thread1(Socket s){
this.s=s;
}
public void run(){
try {
OutputStream o=s.getOutputStream();
PrintWriter out=new PrintWriter(o);
out.println("Hello Client");
out.flush();
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

 TCP 클 라 이언 트 를 만 들 려 면 TCP 클 라 이언 트 프로그램 을 만 드 는 절차: 1). Socket 2 를 만 듭 니 다. I / O 흐름 3) 을 가 져 옵 니 다. I / O 흐름 에 대한 읽 기와 쓰기 동작 4). I / O 흐름 5 를 닫 습 니 다. Socket Socket connection = new Socket (127.0.0.1, 7777) 을 닫 습 니 다. Object InputStream input = new Object InputStream input = new Object InputStream Stream (connection. getInputStream (), Object OutputStream utput = new Object OutputStream(connection. getOutputStream (); 입력 과 출력 흐름 처리; 흐름 과 socket 닫 기. 예: 서버 쪽:
import java.net.*;
import java.io.*;
public class Server1 {
public static void main(String[] args) throws Exception {
ServerSocket ss=new ServerSocket(9000);
while(true){
Socket s=ss.accept();
Thread t=new Thread1(s); //        Socket
t.start();
}
}
}
class Thread1 extends Thread{
Socket s;
public Thread1(Socket s){
this.s=s;
}
public void run(){
try {
OutputStream o=s.getOutputStream();
PrintWriter out=new PrintWriter(o);
out.println("Hello Client");
out.flush();
s.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

 클 라 이언 트:
import java.net.*;
import java.io.*;
public class Client1 {
public static void main(String[] args) throws Exception{
Socket s=new Socket("127.0.0.1",9000);
InputStream i=s.getInputStream();
InputStreamReader ir=new InputStreamReader(i);
BufferedReader in=new BufferedReader(ir);
String str=in.readLine();
System.out.println(str);
s.close();
}
}

좋은 웹페이지 즐겨찾기