내맘대로 살기🎉
[Network 01] C언어 Socket 사용함수와 단어 설명 본문
안녕하세요.
해림(Harris Lim)입니다.
소켓은 Server와 Client가 존재한다.
* 큰 틀
- Server는 Client의 요청을 기다리고 있고, Client가 Server에 요청을 한다. 그러면 다시 Server는 Client에 응답한다.
* 함수
1) Server 사용 함수
- socket(): 소켓 생성
- bind(): IP주소와 PORT번호 할당
- listen(): 연결요청 가능한 상태로 변경
- accept(): 연결요청에 대한 수락
- write(): Server -> Client 데이터 송신
2) Client 사용 함수
- connect(): IP주소와 PORT번호에 대해 연결 요청
- read(): Server -> Client 데이터 수신
* 단어 설명
1) 파일 디스크립터 (File Descriptor)
- 함수에 대한 return 값으로 0 혹은 1 등 짧은 숫자로 의미를 정하여 사용하는 것
- 쉽게 말해, "나는 집에 간다."라는 문장을 "나"라는 한 글자의 단어로 축약하여 사용하는 것.
- 파일디스크립터는 3부터 시작한다. (0, 1, 2는 이미 할당되어있는 값이기 때문이다.)
-> 0: 표준입력, 1: 표준출력, 2: 표준에러
* 파일입출력 함수
1) open(const char *path, int flag)
(1) 설명
- 파일을 생성
(2) path: 파일 이름을 나타내는 문자열의 주소값 전달
(3) flag: 파일의 오픈 모드 정보 전달
- O_CREAT: 필요하면 파일을 생성
- O_TRUNC: 기존 데이터 전부 삭제
- O_APPEND: 기존 데이터 보존하고, 뒤에 이어서 저장
- O_RDONLY: 읽기 전용으로 파일 오픈
- O_WRONLY: 쓰기 전용으로 파일 오픈
- O_RDWR: 읽기, 쓰기 겸용으로 파일 오픈
(4) 실제로 내가 해보니, 파일이 만들어지기는 하는데, 권한이 아무것도 없다.. 아래와 같이 하면 파일의 권한을 변경할 수 있다.
- openopen("data_study.txt", O_CREAT|O_RDWR|O_TRUNC,0644); // 0644와 같이 권한을 줄 수 있음.
'개발자의 길 > Network' 카테고리의 다른 글
[Network 02] 소켓과 프로토콜 (0) | 2020.01.07 |
---|---|
Network 공부 시작 (with. 윤성우의 열혈 TCP/IP 소켓프로그래밍) (0) | 2020.01.05 |