일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- margin
- 포토샵
- SK바이오사이언스
- c++
- skt membership
- spring
- Design Pattern
- c
- 통신사할인
- 알고리즘
- 확률
- Gap
- Flexbox
- pandas
- 소수
- Photoshop
- align-items
- 상태
- 백준
- 에라토스테네스의 체
- series
- stl
- 수학
- Prefix Sums
- grid
- Codility
- CSS
- 강화학습
- dataframe
- Javascript
Archives
- Today
- Total
sliver__
[1장] 소켓 프로그래밍 이해 본문
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