20.12.21

민주·2021년 1월 17일
  1. 1 : 1 chatting 구현

    - 양쪽 모두가 수신과 발신이 자유롭게 되는 시스템 만들기

Ø Sender

- 사용할 Sender를 Thread로 만들어 준다
- 10,11 : 필드네임으로 지정
- 12 : 메인에서 받아 사용할 소켓들어간 생성자 생성
- 16 ~ : 보낼 동작 설정
- 텍스트 왔다갔다 하는 속도는 차이가 없어서 버퍼를 안씀
- 19 : 스캐너로 내용 받기
- 21 : 입력값을 계속 받기 위해 while문으로 반복시켜주기

Ø Receiver

- 사용할 Receiver를 Thread로 만들어주기
- 9,10 : 필드네임으로 지정
- 12 : 메인에서 받아 사용할 소켓이 들어간 생성자 생성
- 19 : Sender와 마찬가지로 들어온 입력값을 계속 읽기 위해 while문으로 읽기 반복

Ø Server

- 14 : 서버소켓 생성 + IP개방 ( 내 IP로 서버를 열 경우는 IP생략해도 된다 )
- 15 : 요청 기다리기 + 연결 수락
- 19 , 22 : 발신스레드와 수신스레드 동작

Ø Client

- 14 : 소켓 생성시 ip와 port정보를 넣어주면 connect를 생략해도 된다.
- localhost = 내 IP
- 18 , 20 : 발신스레드와 수신스레드 동작

Ø Server와 Clinet 대화

- server(이클립스 콘솔)

- clinet (cmd)

  1. UDP(User Datagram protocal)

    - UDP는 주고 받았는지 확인하지 않고 계속 주기 때문에 TCP보다 속도가 훨씬 빠름
    - 웹에서는 TCP사용(파일 전송같은거 깨지면 안되니까) , 스포츠 중계나 총게임 UDP많이 사용
    - 스트림은 긴 연결관으로 전송했다면 datagram은 하나씩 포장해서 전송

Ø Sender

- UDP를 사용하기 위해서는 datagram을 사용한다
- 14 : 소켓도 데이터그램소켓으로 사용
- 21 : 문자열 msg를 바이트로 변환하여 buf에 담는다
- 22 : 바이트로 변환한 msg( 내용 , 길이 보낼 주소 )를 packet에 담는다
- 24 : send로 전송

Ø Receiver

- 13 : 데이터그램 소켓 준비
- 20 : 받을 패킷 준비하는데 받을 때는 최대 크기로 지정해준다
- 25 : 수신은 receive로 한다

  1. 네트워크를 이용한 파일 전송

Ø FileSender

Ø FileReceiver

  1. thread pool을 이용한 웹서버 구현

    - 응답은 헤더(규격/사용자눈에 안보임)와 바디(컨텐츠/사용자 눈에 보임)로 나눠서 보낸다.
    - 브라우저로 접속해보면
profile
개발이좋아요

0개의 댓글