네트워크 프로그래밍이란
- 소켓이라는 것을 기반으로 프로그래밍을 하기 때문에, 소켓 프로그래밍 이라고도함
- 네트워크로 연결된 둘 이상의 컴퓨터 사이에서의 데이터 송수신 프로그램의 작성을 의미함
소켓에 대한 간단한 이해
- 네트워크(인터넷) 의 연결 도구
- 운영체제에 의해 제공이 되는 소프트웨어적인 장치
- 소켓은 프로그래머에게 데이터송수신에 대한 물리적, 소프트웨어적 세세한 내용을 신경쓰지 않게 한다.
소켓함수
전화 |
소켓 |
1.전화기 구입 |
1. 소켓 생성 = socket |
2.전화번호 할당 |
2. 주소 할당 = bind |
3.통신 가능상태 |
3. 연결가능상태 = listen |
4. 전화걸기 | 4. 전화받기 |
4. 연결요청 = connect | 4. 연결 수락 = accept |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
[ 서버는 4개 / 클라이언트 2개 ]의 함수를 사용한다.
클라이언트는 socket 과 connect 만 사용
서버 |
클라이언트 |
Socket ( ) |
bind |
Connect |
listen |
Accept blocking 함수이기에 연결 요청 들어오기 전까진 진행이 안됨 |
※ 컴파일 시 명령어 [ gcc 실행파일명 -o 출력파일명 ]
※ 출력파일 실행 명령어 [ ./ 출력파일명 인자들... ]
리눅스상에선 소켓과 파일을 똑같이 간주함