네트워크 프로그래밍이란 소켓 기반의 프로그래밍이다. 소켓이란 운영체제에서 제공하는 소프트웨어적 장치이다. 컴퓨터는 네트워크를 통해 데이터를 전송하는 것을 파일로 처리한다.소켓켓은 종종 전화기와 비교한다.소켓 생성은 전화기 장만에 비유할 수 있ㄷ.전화를 거는(client
소켓 프로그래밍에서 송수신된 데이터는 소켓에 저장된다고 하였다. 이를 read, write 함수를 통해 수행했었는데, 리눅스 기반의 파일에 write, read 하는 방식과 똑같다. 리눅스의 파일 처리를 먼저 알아보자.파일 디스크립터란 파일을 관리하는 키이다. 0,1,
socket 함수를 다시 확인해보자.domain: 소켓이 사용할 프로토콜 정보 전달(e.g. ip version 4)type: 소켓의 데이터 전송방식에 대한 정보 전달TCP 또는 UDP 둘 중 하나를 선택한다.protocol: 두 컴퓨터 통신에 사용되는 프로토콜 정보
(인터넷 주소란 인터넷 상에서 컴퓨터를 구분하는 목적으로 사용되는 주소이다.4byte 주소체계인 IPv4와 16byte 주소체계인 IPv6가 존재한다.)첫 번째 인자(소켓)에 IP주소와 포트번호를 부여하는데 그게 두 번째 인자의 구조체이다.위 코드의 구조체는 다음과 같
네트워크 상에서 바이트 순서가 다르면 손실될 우려가 있기 때문에 하나의 방식으로 통일을 했다.바로 상위 바이트가 하위 메모리에 먼저 쓰이는 빅 엔디안(big endian) 방식이다.이를 위한 함수가 필요하다.htons에서 h는 호스트 바이트 순서를 의미한다.ntohs에
TCP 기반의 소켓 프로그래밍의 전반적인 API를 알아보자.위의 이미지 순서로 서버의 API의 역할, 매개변수, 반환값 등을 알아본다.int listen(int sock, int backlog)성공 시 0, 실패 시 -1 반환int sock: 연결요청 대기상태에 두고자