Server, Client의 함수 선언 과정
-
서버와 클라이언트 모두 socket()와 read(), write()를 호출한다.
그리고 둘 다 모두 마지막에 소켓을 닫기 위해 close() 함수로 호출한다.
-
다음 포스팅에서 서버 측의 함수 호출 과정의 비유와 역할을 봐보자.
-
추가로 제 포스팅을 참고하셔서 공부하시는 분들에게 팁을 드리자면,
IT책은 선 사용 후 학습입니다.
(물론 IT 서적 전부가 그런 것은 아닙니다.)
즉, 먼저 예제나 실습을 통해서 독자에게 사용법을 알려준 뒤, 의미와 정의를 알려줍니다.
그래서 초반에 공부하다 보면 "저게 어떤 의미지?", "이게 어떻게 이런 결과가 나오지?"
"저건 어떤 역할이지?", "도저히 모르겠는데 뭘 하라는 거야", "그냥 하지 말까"
등의 말이 나올 수 있습니다.
하지만 이건 지극히 정상적입니다.
모르겠는데 지금 배우고 있는 책의 페이지에서 설명이 안되어 있으면,
그냥 몰라도 따라 하면 됩니다.
몰라도 천천히 차근차근 읽어가면서 책의 진도를 빼면 됩니다.
포기하지만 마시고 천천히 배워나가면 됩니다.
이게 책의 큰 그림입니다.
작은 부분들을 천천히 알려줌으로써 천천히 퍼즐을 맞춰서 큰 그림을 그리는 것이지요.
그렇기에 독자들은 당연히 처음엔 모르는 게 많은, 그래서 그만 하고 싶은 충동을 일으킵니다.
하지만 책을 다 끝내고 나면 처음에 다 몰랐던 예제가
책을 끝내고 난 뒤 어떤 의미이고 어떤 동작을 하는지 다 아는 상태가 됩니다.
그러므로 포기하지만 마시고 모르는게 나오면 구글링을 해보시거나
"그냥 이런 의미구나" 하면서 진도를 나가시면 됩니다.
-
※ 프로그램 첨부파일 사용법 ※
글에 C로 작성된 코드 파일과 실행 파일이 첨부되어 있습니다.
실행파일은 확장자가 .exec이며, 맥 os에서 컴파일되었습니다.
고로, 리눅스에서 해당 실행 파일이 실행되지 않을 수 있습니다.
다운로드했을 때 파일을 Downloads 폴더 안에 다운로드했다면
터미널에서 Downloads 폴더 안으로 이동 후 Downloads 폴더로 이동되어 있는지 항상 확인하고
명령어를 입력하시면 됩니다.
리눅스에서 실행 파일 대신 C로 작성된 코드 파일을 다운로드하여
해당 코드 파일을 gcc 명령어를 이용해서 컴파일을 하시는데 다음과 같이 하시면 됩니다.
gcc [파일이름].c -o [실행파일 이름]이름]
위와 같이 명령어를 입력하시는데
[파일 이름]은 코드가 적힌 파일의 이름을 입력해야 합니다
-
※ 서버 실행파일 생성 및 실행 ※
글에서 다운로드한 코드 파일이면 파일 이름이 되어있습니다.
그러면 이렇게 입력하면 됩니다.
gcc server.c -o [실행파일 이름]이름]
그리고 [실행파일 이름]은 생성될 실행파일의 이름을 정해주는 것입니다.
실행파일의 이름을 server라고 하고 싶으시면
gcc server.c -o server
라고 하시면 됩니다.
그리고 이제 컴파일된 실행파일을 터미널에서 실행시켜주는데
./[파일 이름] [Port번호]
위와 같은 형식의 명령으로 터미널에서 실행해주시면 됩니다.
다운로드한 코드 파일을 컴파일할 때 [실행파일]의 이름으로
server라고 하셨다면
./server 8888
와 같은 형식으로 입력해줍니다.
포트 번호는 사용자께서 다른 번호로 적으셔도 됩니다.
만약 실행 파일을 실행했는데 권한이 없다고 뜨면
chmod 명령어로 권한을 주면 됩니다.
chmod +x [파일 이름]
와 같이 터미널에서 먼저 실행 권한을 준 뒤
터미널에서 실행하면 됩니다.
생성될 파일 이름을 server라고 컴파일했다면
chmod +x server
라고 하면 됩니다.
그리고 다시
./server 8888
을 입력하셔서 실행하시면 될 것입니다.
-
※ 클라이언트 실행파일 생성 및 실행 ※
글에서 다운로드한 코드 파일이면 파일 이름이 client client라고 되어있습니다.
그러면 이렇게 입력하면 됩니다.
gcc client.c -o [실행파일 이름]이름]
그리고 [실행파일 이름]은 생성될 실행파일의 이름을 정해주는 것입니다.
실행파일의 이름을 client라고 하고 싶으시면
gcc client.c -o client
라고 하시면 됩니다.
그리고 이제 컴파일된 실행파일을 터미널에서 실행시켜주는데
./[파일 이름] [서버측IP] [Port번호]
위와 같은 형식의 명령으로 터미널에서 실행해주시면 됩니다.
다운로드한 코드 파일을 컴파일할 때 [실행파일]의 이름으로
client라고 하셨다면
./client 127.0.01 8888
와 같은 형식으로 입력해줍니다.
IP는 127.0.0.1로 하면 자기 컴퓨터에서 열어둔 서버를 이용한다는 의미입니다.
포트 번호는 서버 실행파일 실행할 때 설정한 포트 번호랑 동일하게 입력해야 됩니다.
만약 실행 파일을 실행했는데 권한이 없다고 뜨면
chmod 명령어로 권한을 주면 됩니다.
chmod +x [파일 이름]
와 같이 터미널에서 먼저 실행 권한을 준 뒤
터미널에서 실행하면 됩니다.
생성될 파일 이름을 client라고 컴파일했다면
chmod +x client
라고 하면 됩니다.
그리고 다시
./client 127.0.0.1 8888
을 입력하셔서 실행하시면 될 것입니다.
'시작하지 말았어야 했던 것 > (Unix, Linux) C Socket' 카테고리의 다른 글
(리눅스 기반 파일 조작) 저 수준 파일 입출력과 파일 디스크립터 (0) | 2021.02.02 |
---|---|
(리눅스) 클라이언트[client] 프로그램 구현 (0) | 2021.02.02 |
(리눅스) 서버[server] 프로그램 구현 (0) | 2021.02.01 |
(리눅스)클라이언트 측 함수 선언 과정의 비유와 역할 (0) | 2021.02.01 |
(리눅스)서버 측 함수 선언 과정의 비유와 역할 (0) | 2021.02.01 |