호스트 A가 자신이 전송해야 할 모든 데이터를 전송하고 나서 출력 스트림을 종료한다.그러나 입력 스트림은 종료하지 않았기 때문에 호스트 B로부터 데이터를 수신할 수 있다.자신이 보내고자 하는 데이터를 다 보냈다 하더라도 상대방이 나에게 보낼 데이터가 있을지도 모른다는 생각에 입력 스트림은 종료하지 않고, 출력 스트림만 종료가 가능한다 => 이것을 가능하게 하는 기능이 shutdown() 함수이다. 1int shutdown(_In_ SOCKET s, _In_ int how);css : 종료하고자 하는 소켓의 소켓 핸들how : 종료 모드0 : SD_RECEIVE : 입력 스트림 종료1 : SD_SEND : 출력 스트림 종료2 : SD_BOTH : 입출력 스트림 종료
UDP: UDP는 특별한 경우가 아니면 하나의 소켓을 사용한다. 하나의 소켓을 통하여 여러 호스트들과 데이터를 송/수신할 수 있다. UDP 기반의 데이터 입/출력 함수: UDP 소켓은 연결 상태를 유지하지 않으므로, 데이터를 전송/수신 하는 함수 호출 시 반드시 보내고자/받고자 하는 곳의 주소 정보를 포함해야 한다.123456789int sendto( _In_ SOCKET s, _In_ const char *buf, _In_ int len, _In_ int flags, _In_ const struct sockaddr *to, _In_ int tolen); Colored by Color Scriptercs => 성공 시 전송된 바이트 수 리펀, 실패시 -1 리턴 12345678int recvfrom( _I..
LINK 계층 [피지컬 영역]LAN, WAN, MAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역. 물리적인 연결IP 계층 [네트워크 영역]경로 선택.목적지에 데이터를 보내기 위해 중간에 어떠한 경로를 거쳐갈 것인가 해결.데이터의 전송 순서나 오류 발생에 대해서 전혀 관심을 두지 않음.TCP/UDP 계층 [트랜스포트 영역]데이터를 전송하는 방법을 정의.신뢰적인 데이터 전달 프로토콜의 구축. ==> RDTGo-Back-NSelective repeat어플리케이션 계층 [어플리케이션 영역]데이터 전송에 관련된 약속(규칙) 확립.소켓 프로그래밍.