[JAVA] 11강 NetWork Client & Server

KDH59·2024년 2월 8일
0

[JAVA]

목록 보기
11/13

JAVA NetWork

NetWork 정의

  • 서로 다른 컴퓨터가 서로 연결 되어 있는 망을 의미

  • 컴퓨터가 사물로 변화하면서 IOT로 변경

    NetWork 기초

  • NetWork에서의 첫번째 과제는 목적지 컴퓨터까지 어떻게 가느냐이다

  • EX) 약속장소에 어떻게 가느냐

    Network 에서는 그 주소가 IP 주소와 port 번호이다

    -> 이 주소를 알기 쉽게 하기 위해 우리는 domain 이라는 것을 사용

    NetWork 필수 조건

컴퓨터를 -> 서버라고 한다

(기본) 클라이언트가 먼저 묻기(요청) 전에 답하지 말것 -> 서버는 응답만 할것

클라이언트랑 서버의 관계

request ->
sever

IP 주소 얻기

구디 강의실 내컴퓨터 192.168.70.109

IPv4 최초의 네트워트를 만들때 주소체계가 필요하기에 4자리로 255까지

IPv6 네트워크 부족으로 16개의 층으로 이루어져 있어 이론상 무한대로 IP를 찍어낼수다. 16진수라 외우기 어려움

대형사이트의 경우 하나의 domain에 여러개의 IP를 가지고 있다

★여기서부터 중요★

TCP

※ 포로토콜 = 규약

  • TCP 는 연결 지향 포로토콜로, 데이터를 안전하고 정확하게 전달 한다.
  • 단점은 데이터를 보내기 전에 반드시 연결을 형성해야 하며. UDP 보다 속도가 느리다
    주고 받았다고 확인 받고 다시 주는 방법

UDP 무조건 적으로 계속 주는 방법 (게임할때 주로 사용)

소켓 통신

  • 소켓이 없으면 통신 자체가 안됨
  • 소켓은 접속을 하게 해줌

Server 만들기

순서
1.서버 소켓 생성 : 어디로 들어올건지 호실 지정
2.요청대기
3.접속요청이 올 경우 수락(소켓안에는 접속 요청자의 모든 정보가 있다)
-> 접속 요청 전까지 blocking 중 -> 누구간가 접속 요청하면 진행
4.할 일
5.클라이언트가 요청한 일이 있으면 처리, 요청한 클라이언트의 아이피의 포트 알아보기
-> 만약에 예외 발생 시 서버 소켓 종료

Client 생성

순서
1.소켓 생성
2.예외가발생하지 않으면 접속 완료
3.할 일
4.다 끝났으면 자원 반납

Echo server

  • 클라이언트와 서버가 접속 했다면 스트림을 통해 데이터를 주고 받을 수 있다.

소켓으로부터 스트림을 뽑아 낼 수있다.

NetWork를 활용하고 socket에 Stream 넣어서 내용 주고 받기

NetWork를 활용하고 Scanner를 이용하여 매일 주고받기

NetWork를 활용한 File 주고 받기

File를 이용하여 이미지 주고받기

코드리뷰

네트워크 상으로 파일을 내용을 소캣으로 저장하여

네트워크을 통해 다른 컴퓨터로 파일 데이터를 보내기 위해 서버를 통해 보내기 때문에
우선적으로 서버 소켓을 생성시킨다.

클라이언트가 들어갈 포트을 개방하는 역할을

while 문을 통해 접속 요청 대기를 지속적으로 요청하지만

sever.accept를 사용해서 정보를 받을때까지 브래이크 역활을 수행 해줍니다.

소켓에서 받아온 정보를 읽기 위해서 소켓겟인풋스트림을 통해 인풋스트림으로 생성하고

생성 된 is를 읽어오기 휘새 buffer ~ stream 을 사용

또한 그 데이터를 String으로 읽어오기 위해 오브젝트인풋스트림도 사용한다.

ois를 리드

서버 소켓을에 서버를 받아드리기 위한 accept를 사용 정보를 받기 전까지 브래이크 하는 역활을 진행합니다.

Input스트림을 통해 파일을 보내기 때문에 소켓에 있는 정보를 get.inputstreamd 통해 변환 해주고

그 데이터를 is 변수에 저장

이후 보조스트림을 사용해서 속도와 오브젝트화 시켜 대비 합니다.

data가 지정된 위치를 통해서 데이터가 다 읽을때까지 while문을 돌리는데
bos를 Write 하나씩 잃어낸다.

profile
[JAVA]

0개의 댓글

관련 채용 정보