반응형
Notice
Recent Posts
Recent Comments
Link
NOW OR NEVER
[JAVA] Network Programming 본문
반응형
Dialog 클래스
- JColorChooser 클래스 : 좀 더 다양한 색상을 선택하도록 하는 다이얼로그
- showDialog 메소드 : 선택하도록 다이얼로그 띄워줌 --> Color 자료형 값 반환
- getColor 메소드: 색상을 가져오도록 해줌
- JFileChooser 클래스: 저장하고 열기를 할 때 파일을 선택하기 위한 다이얼로그
- ObjectInputStream, ObjectOutputStream : 객체 단위로 읽고 출력하는 클래스 ex) 리스트를 통째로 파일로 내보낼 수 있다.
- ObjectInputStream : InputStrea의 후손이며 객체 단위로 입력을 위한 클래스
- ObjectOutputStream : OutputStream의 후손이며 객체 단위 출력을 위한 클래스
- 객체 단위로 출력한 클래스는 객체 단위로 읽어야 한다.
- 객체 단위로 출력하기 위한 클래스는 직렬화 되어 있어야 한다.
- 해당 클래스에 implements Serializable 키워드 추가
네트워크 프로그래밍
java.net
- 네트워크 프로그래밍과 관련된 클래스들을 모아놓은 패키지
- 클래스
- InetAddress : 인터넷 상의 주소를 표현하기 위한 클래스
- InetAddress는 생성자가 제공되지 않으며 static 메소드를 통하여 객체 생성함
- 생성자 없음
- 메소드들을 통해서 InetAddress 객체 반환
- InetAddress.getByName("인터넷주소") : 해당 인터넷 주소의 ip주소 가져옴, 예외처리 필수
- InetAddress.getAllByName("인터넷주소");: InetAddress의 배열 받아오기, 예외 처리 필수
- InetAddress는 생성자가 제공되지 않으며 static 메소드를 통하여 객체 생성함
- URL
- 인터넷 상의 문서의 위치를 표현하기 위한 클래스
- 예외 처리 필수
- URL url = new URL("인터넷 주소") : 인터넷 상의 문서 객체 생성
- InputStream 이름 = URL객체이름.openStream : 그 문서의 내용을 읽어들이기 위한 스트림 생성
- InputStream객체.read : 스트림을 통해 데이터 읽어들임통신 프로그램
- 네트워크 상에서 두 대의 컴퓨터가 서로 데이터를 주고 받는 프로그램을 말한다.
- 통신 관련 기본 용어
- ip 주소 : 인터넷 상의 수 많은 컴퓨터들 중 특정 컴퓨터를 구별하기 위한 식별자, 서로 간의 데이터를 주고 받기 위해서는 ip가 필요하다.
- port 번호 : 하나의 컴퓨터에서 동시에 여러 개의 네트워크 프로그램이 실행 할 수 있다. 이때 특정 프로그램을 구별하기 위한 식별자
- 서버 server : 서비스를 제공하는 컴퓨터 혹은 프로그램
- 클라이언트 client: 서비스를 제공받는 컴퓨터 혹은 프로그램
- 메아리 : 수신한 데이터를 그대로 데이터를 보낸 쪽으로 내보내는 것을 말한다.
- 방송 : 수신한 데이터를 연결된 모든 컴퓨터에게 내보내는 것을 말한다.TCP 방식
- 통신 방식
- 통신하고자 하는 컴퓨터와 연결을 먼저 맺은 후 상대방 컴퓨터가 데이터를 받을 준비가 되어있는 지 확인 한 후 데이터를 주고 받은 방식
- 현실에서의 전화와 비슷한 개념
- 클래스
- ServerSocket
- 생성자 ServerSocket 객체이름 = new ServerSocket(port 번호);
- 메소드
- accept() : 클라이언트의 접속을 수락하여 자료형이 Socket인 값(Socket 객체)을 반환
- Socket : 통신을 요청할 때 사용
- 생성자: Socket 객체이름 = new Socket("ip주소",port 번호);
- ServerSocket
- 해당 방식의 네트워크 프로그래밍 절차
- 1.서버가 serverSocket 생성
- ServerSocket에서 정한 port 번호로 연결을 시도해야 한다.
- 2.서버가 클라이언트가 접속할 때 까지 무한 대기 상태
- 3.클라이언트 측에서 Socket 객체를 생성하여 통신 요청
- 4.서버 측에서 클라이언트에서 보낸 통신 요청을 수락한다.
- 5.서버 및 클라이언트 측에서 데이터를 주고 받을 스트림을 생성한다.
- InputStream 객체이름 = socket객체.getInputStream();
- OutputStream 객체이름 = socket객체.getOutputStream();
- 6.서버와 클라이언트 서로 데이터를 주고 받는다
- 7.서버와 클라이언트 둘 다 사용했던 자원을 닫아 준다.UDP 방식
- 1.서버가 serverSocket 생성
- 통신하고자 하는 컴퓨터와 연결을 맺지 않고 상대방 컴퓨터가 데이터를 받을 준비가 되어 있는지 확인 없이 데이터를 전달하는 방식
- 현실에서의 편지와 비슷한 개념
- 클래스
- DatagramSocket
- 객체 생성시 통신을 하기 위한 port 번호 필요, 예외 처리 해주기
- 메소드
- receive(DatagramPacket 객체)
- sender(DatagramPacket 객체)
- DatagramPacket
- 생성시 데이터가 들어 있는 배열, 데이터 길이, 목적지의 주소, 포트 번호 포함해야 함
- 데이터를 주고 받을 때 준비해야 한다.
- DatagramSocket
- 해당 방식의 네트워크 프로그래밍 절차
- TCP 방식과 달리 순서가 없다.
- 상대방이 데이터를 갖고 있나 확인하지 않고 데이터를 내보낸다.
- 연결이 되어 있지 않아 packet(데이터 뿐만 아니라 목적지의 주소까지 같이 있는 형태) 단위로 보내고 받는다.
- UDPSender ip 주소 포트번호 데이터
- UDPReciever : UDPSender가 보낸 데이터 출력
Tips
- 바이트
- read 메소드 : 읽어들인 byte 수 반환, 더이상 읽어들이는 게 없으면 -1 반환
- write 메소드 : 값 내보내기
- String
- 생성자(바이트배열, 인코딩방식) ex) new String(data,"utf-8")
- Arrays
- Arrays.fill(배열, 채울 값) :배열을 해당 값으로 채워주기
- 배열 비워주기: Arrays.fill(배열,0) --> 바이트 배열일 경우 0이 아니라 (byte)0
- Arrays.fill(배열, 채울 값) :배열을 해당 값으로 채워주기
- GUI
- 클라이언트 측만 필요
- JFrame 클래스
- JFileChooser : 저장 위한 클래스
- JFileChooser.APPROVE_OPTION : 다이얼로그에서 예 에 해당하는 값
- jfc객체.showSaveDialog() : 저장옵션 보여주는 다이얼로그
- jfc객체.getSelectedFile() : 해당 파일로 저장
- JTextField : 한 줄 입력
- jtf객체.getText() : 텍스트 필드에 있는 텍스트 가져오기
- JTextArea : 여러 줄 입력
- jta객체.setText() : 해당 문자열을 텍스트 에리어에 설정
- jtf객체.getText() : 텍스트 필드에 있는 텍스트 가져오기
- JButton : 버튼 생성
- JScrollPane : 스크롤 생성
- JScrollPane jsp = new JScrollPane(스크롤 생성할 영역의 변수이름);
- JFileChooser : 저장 위한 클래스
'Back-End > JAVA' 카테고리의 다른 글
[Spring] 스프링 MVC 기초 (0) | 2022.05.27 |
---|---|
[JAVA] JDBC(Java DataBase Connection Programming) (0) | 2022.04.15 |
[JAVA] Thread (0) | 2022.04.13 |
[JAVA] GUI(Graphical User Interface) (0) | 2022.04.12 |
[JAVA] 예외 처리 & Collection (0) | 2022.04.08 |
Comments