TCP(Transmission Control Protocol) and UDP(UserDatagram Protocol)
TCP : reliable data transfer(신뢰할만한 데이터 전송) UDP : fast communication than rekliability, multicast and broadcast(신뢰보다는 속도 중심의 전송)
TCP는 연결이 필요하고 UDP는 연결없이 일단 데이터 전송을 한다. TCP는 1:1 통신이고 UDP는 1:다 통신이다.
TCP는 데이터가 보내진 순서대로 받는다. UDP는 보내진 순서와 관계없이 받을 수 있다. TCP는 신뢰있게 데이터가 보내진다. UDP는 데이터가 중간에 날아갈 수 있다. TCP는 속도가 UDP보다 느리다. UDP는 TCP보다 속도가 빠르다.
자바 클래스에서 Socket을 사용하면 TCP. 자바 클래스에서 Datagram, Multicast 가 나오면 UDP.
Socket에는 IP address와 Port 번호가 존재한다. 그래서 client와 server은 TCP socket을 이용해서 통신을 하게 된다.
이제 Client와 Server간에 Socket으로 통신을 하게 되고 통신은 InputStream과 OutputStream을 이용해서 상호 데이터를 주고 받게 된다.
![<https://images.velog.io/images/tonyhan18/post/29e7d7b1-96fc-45f2-b997-6f7ce49b3d51/image.png>](<https://images.velog.io/images/tonyhan18/post/29e7d7b1-96fc-45f2-b997-6f7ce49b3d51/image.png>)
먼저 서버 소켓을 만들고 port와 연동(bind)해 놓는다.
이때 port number은 서버가 열어놓을 포트 번호이다. 만약에 해당 포트 번호에 다른 애플리케이션이 사용하고 있다면 우리는 이 포트를 사용할 수 없다.
서버는 한번 켜놓으면 프로그램을 계속 돌리는 것이다. 그래서 중간에 infinite while loop를 사용하였다.