C/S( Client / Server ) Programming ( 통신 프로그램 )
java.net 패키지에서 관련 클래스들을 제공
network : 서로 다른 컴퓨터를 연결하기 위한 데이터 통신망
데이터 통신망 : 컴퓨터가 제어하는 통신망
NIC ( Network Interface Card ) : LAN card
Hub - 여러 개의 컴퓨터를 연결하고, 연결된 컴퓨터의 MAC주소로 컴퓨터를 찾기 위한 장비
Router - 여러 개의 Hub를 관리하고, 목적지 컴퓨터의 최단거리를 테이블로 저장하고 관리하는 일
Protocol - 데이터를 송,수신하기 위한 전송규약
개방형 시스템에서 데이터를 주고 받는 것을 이해하기 쉽도록 정의한 7가지 계층.
상위계층은 하위 계층으로 PDU( Protocol Data Unit )을 내려주고, 서비스를 요청(Service Request)한다.
응용계층 ( Application Layer )
표현계층 ( Presentation Layer )
세션계층 ( Session Layer )
전송계층 ( Transport Layer )
네트워크계층 (Network Layer )
데이터링크계층 ( Data Link Layer )
물리계층 ( Physical Layer )
header - 패킷제어 정보를 가진다.
data - 실제 전송하는 정보가 포함. ( 예 : 이메일의 본문 내용, 웹 페이지의 HTML코드 )
trailer - 패킷의 끝에 추가되는 부분으로 패킷이 올바르게 전송되었는지 오류 검사 정보를 포함
TCP 프로토콜은 데이터를 네트워크 상황에 따라 MTU가 결정되는 가변적인 segment로 분할되어 전송한다.
MTU ( Maximum Transmission Unit )는 데이터 링크에서 전송할 수 있는 최대 크기
//ServerSocket server = new ServerSocket( 포트 );
ServerSocket server = new ServerSocket ( 60000 );Socket slient = new Socket ("192.168.10.xx",60000);Socket client = server.accept();//Com A
ServerSocket server = new ServerSocket(60000);//Com B ( 서버로 접속을 시도 )
Socket client = new Socket("서버ip",60000);//Com A
Socket client = server.accept();//Com A
DataOutputStream dos = new DataOutputStream(client.getOutputStream());4.1 Com B-소켓에서 출력스트림을 얻는다.//Com B
DataInputStream dis = new DataInputStream(client.getInputStream());//Com A
dos.writeUTF("메시지");//Com A
dos.flush();//Com A
dos.close();
client.close();
server.close();7.1 Com B-스트림에 메시지 읽기//Com B
String str = dis.readUTF();//Com B
dis.close();
client.close();