내맘대로 살기🎉

[Network 01] C언어 Socket 사용함수와 단어 설명 본문

개발자의 길/Network

[Network 01] C언어 Socket 사용함수와 단어 설명

해림😶 2020. 1. 7. 22:49

안녕하세요. 

해림(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와 같이 권한을 줄 수 있음.

 

 

반응형
Comments