3주차 : 채팅 구현하기
채팅에 대한 기본적인 사항
computer간의 data를 주고받기 위해 여러개의 computer를 연결(유, 무선)시켜 놓은 물리적인 망
일반적으로 크기를 기준으로 여러가지 Network를 구성합니다.
PAN(Personal Area Network): 블루투스
LAN(Local Area Network)
Network of Network => Internet
우리는 인터넷 상에서 네트워크를 통한 서비스를 이용할 수 있습니다.
email, www, ftp와 같은 서비스들이 포함됩니다.
Network를 통해 computer가 데이터 통신을 하려면
Network에 참여하고 있는 각 computer에게 논리적인 주소(IP Adress)를 부여하고,
이를 통해 서로 통신을 할 수 있게 된다.
데이터를 주고받기 위해 사용하는 통신 규칙
을 의미합니다.
TCP, UDP, HTTP등의 다양한 프로토콜이 있습니다.
하나의 숫자를 이야기 합니다. 16bit로 이루어져 있으며
0~ 65,535사이의 숫자로 이루어져 있습니다.
0 ~ 1,023의 포트번호 reserved port 라고 하여 약속된 번호들이 주로 사용된다.
port는 자신의 computer에서 실행되는 program에 활용될 수 있는 번호입니다.
포트번호는 Unique하게(겹치지 않게) 사용되어야 합니다.
컴퓨터와 컴퓨터가 통신하기 위해서는 IP와 Port번호가 필요합니다.
먼저, IP로 컴퓨터를 식별하여 컴퓨터를 특정합니다.
두번째로, Port번호로 프로그램을 특정하여 해당 프로그램을 특정하여 프로그램과 통신합니다.
프로그램을 작성하는것이 너무 어려움
BSD계열의 Unix에서 "Socket" 라이브러리를 만들었습니다.
Socket을 이용하여 어려운 개념은 감추고, 직접 프로그래밍 하는것보다 훨신 간편하게
통신을 할 수 있게 되었습니다.
Java에서도 소켓통신을 지원하기 위해 Socket Class를 제공합니다.
소켓은 데이터 데이터 통신을 위해서 Port를 추상화 시킨 것입니다.
일단 소켓을 만들면 통신할 수 있게 됩니다.
소켓은 한쪽에만 만들어질 수 없고, 양쪽에 만들어집니다.
소켓이 만들어졌다는 의미 자체가 이미 통신할 준비가 되었음을 의미합니다.
채팅을 위한
JavaFx
Java의 표준 GUI 라이브러리인 Swing을 대체하는 Library
1. Library 다운로드
2. Javafx사용
fx 실행이 안됨니다
VM Argument설정
1. Run As
2. Arguments
event handling
-> 사용자가 발생한 이벤트를 추가하려면 어떻게 하나요?
=> Event Delegation(위임) model
Click 발생
-> JVM이 이벤트 상태정보 객체 생성
-> Event 객체
Event 객체
1. Event Source
2. Event 명 -> class로 이용 -> ActionEvent
3. Listner 객체(이벤트 쿼리 객체)
4. Event 객체 (event 상세공복)
Network Program
C/S구조
-> Client + Server 구조
포트번호는 자바의 특정 서버 객체에 길을 열어줘서 접속할 수 있게 해준다.
그렇게 하기 위해서 소켓 만들 때 포트번호를 제공해 주어야 한다.
java 화면 구성
nort|
west| 주변에 컨텐츠가 없으면 주변 화면을 넓게 가져갑니다.
east|
center: TextArea
south: 버튼