관리 메뉴

JeongseokDEV-SimpleU

[자바]채팅프로그램(1) 본문

자바

[자바]채팅프로그램(1)

SimpleU 2020. 1. 31. 20:35

필요한 배경지식

 - TCP/IP, JAVA I/O, Thread


채팅의 원리 

  • 서버와 클라이언트 모두 네트워크에 연결되어 IP를 할당 받고 있는 디바이스. 
  • 서버는 클라이언트가 필요한 자원을 가지고 있고 클라이언트는 서버에 특정 자원에 대한 요청을 하면 서버는 그 자원을 찾아서 응답

TCP/IP

  • 다른 컴퓨터와 통신을 하기 위한 통신 규약 중 OSI 계층 중에 전송계층에서 사용
  • 인터넷에서 서로 연결된 컴퓨터 프로그램 간에 데이터를 안정적이고 순서대로 교환할 수 있게 해주는 신뢰성이 높은 방식입니다.
  • 전송제어와 흐름제어 방식 등을 사용

Socket

  • 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점. 
  • 클라이언트에서 출발한 패킷이 회선을 거쳐 서버 컴퓨터의 맨 마지막 하단부인 소켓에 도달해서 데이터를 교환
  • 소켓은 인터넷 프로토콜,원격지와 로컬의 ip주소와 포트에 관한 정보을 담고 있음

ServerSocket sercverSocket ......


InputStram / OutputStream

  • 자바에서 데이터는 스트림을 통해 입출력 됨 스트림은 단일 방향으로 연속적으로 흘러가는 것을 말함 
  • 물이 높은 곳에서 낮은 곳으로 흐르듯이 데이터는 출발지에서 나와 도착지로 흘러간다는 개념
  • 프로그램이 데이터를 입력받을 때에는 InputStream 이라고 부름
  • InputStream의 출발지는 키보드,파일 네트워크 상의 프로그램이 될 수 있음

항상 프로그램을 기준으로 데이터가 들어오면 InputStream// 데이터가 나가면 OutputStream 

다른 프로그램들과 데이터를 교환을 하기 위해서는 양쪽 InputStream 과 OutputStream이 따로 필요
Stream은 단방향 통신을 한다는 특징이 있으므로 하나의 스트림으로 입출력을 동시에 할 수 없음


InputStreamReader / OutputStreamWriter
-바이트 스트림에서 문자 스트림으로 또는 문자 스트림에서 바이트 스트림으로의 변환을 제공하는 입출력 스트림


BufferedReader

- BufferedReader 클래스는 문자 입력 스트림으로부터 문자들을 읽어 들이는데 버퍼링을 함으로써
문자, 문자배열, 문자열 라인 등을 보다 효율적으로 읽어 들일 수 있도록 해준다.


PrintWriter

- 기본 데이터형이나 객체를 쓰기 위한 클래스
PrintWriter(OutStream out, boolean autoFlush)
- 자동 flushing기능이 있는 PrintWriter 객체를 생성한다.

InetAddress.......

'자바' 카테고리의 다른 글

[자바]  (0) 2020.02.11
[자바]BubbleSort, SelectionSort, InsertionSort  (0) 2020.02.07
[자바]관리 프로그램 기초( 도서 )  (0) 2020.02.07
[자바]채팅 프로그램(2)  (0) 2020.02.02
[자바]로또 프로그램  (0) 2020.01.30