sliver__

[1장] 소켓 프로그래밍 이해 본문

CS/TCP_IP

[1장] 소켓 프로그래밍 이해

sliver__ 2023. 6. 23. 17:14
728x90
  • 네트워크 프로그래밍이란?
    • 소켓을 기반으로 프로그래밍
    • 네트워크로 연결된 둘 이상의 컴퓨터 사이에서 데이터 송수신 작성 프로그래밍을 의미
  • 소켓이란?
    • 네트워크 연결 도구
  • 서버 동작
    • 1) 소켓 생성 : socket 함수
    • 2) IP / PORT 할당 : bind 함수
    • 3) 연결요청 가능한 상태로 변경 : listen 함수
    • 4) 연결 요청에 대한 수락 : accpet 함수
  • 클라이언트 동작
    • 1) 소켓 생성 : socket 함수
    • 2) 서버로 연결 요청 : connect 함수 ( 자신의 IP 주소 사용 + 서버 PORT 번호로 연결 요청 ) 
번호 함수 Return value
(SUCCESS / FAIL)
설명
1 int open(const char *path, int flag) 파일 디스크립터 / -1 path 경로에 flag 옵션으로 파일 생성
2 int close(int fd) 0 / -1 fd 반환
3 ssize_t read(int fd, const void* buf, size_t nbytes) 수신한 바이트 수 / -1 fd로부터 nbytes만큼 데이터 수신
4 ssize_t write(int fd, const void* buf, size_t nbytes) 전달한 바이트 수 / -1 fd에 nbytes만큼 데이터 전송
  • open flag는 아래의 표와 같다.
open flag 설명
O_CREAT 필요하면 파일을 생성
O_TRUNC 기존 데이터 전부 삭제
O_APPEND 기존 데이터 삭제하고 뒤에 추가
O_RDONLY 읽기 전용으로 open
O_WDONLY 쓰기 전용으로 open
O_RDWR 읽기, 쓰기 전용으로 open
  • 리눅스는 파일과 소켓을 동일하게 간주한다.
728x90

'CS > TCP_IP' 카테고리의 다른 글

[3장] 주소체계와 데이터 정렬  (0) 2023.06.23
Comments