네트워크 프로그래밍은 네트워크로 서로연결된 서로 다른 컴퓨터가 데이터를 서로 주고 받을 수 있도록 하는 것이다.
물리적으로 연결하는 문제는 인터넷이 잘 보급되어 있기 때문에 신경쓰지 않아도 된다. 그렇기 때문에 소프트웨어 적으로만 해결하면된다. 이는 또 운영체제에서 소켓이란 것을 제공 하기 때문에 우리는 그 소켓을 이용만 하면된다.
즉 네트워크 프로그래밍은 소켓 프로그래밍과 동일한 것이다. 생성 순서는 아래와 같다.
- socket() 호출 : 소켓 생성
- bind() 호출 : IP주소, PORT할당
- listen() 호출 : 연결 가능한 상태로 전환
- accept() 호출 : 연결 요청 수락
이 때 연결 요청은 클라이언트가하며 수락은 서버가 한다. 즉 소켓을 서버소켓, 클라이언트소켓 으로 구분이 가능할 수 있다. 서버 소켓은 리스닝 소켓이라고도 한다.
클라이언트 소켓에서는 대략적으로 소켓생성과 connect() 기능만 사용하면된다.
컴파일은 c컴파일러지만 리눅스에서 컴파일해야하는 GCC를 사용한다. 사용 방법은 아래와 같다.
gcc [FileName].c -o [exeFileName]
여기서 o는 실행파일의 이름을 정하는 옵션이다.
이후에 서버실행파일을 실행하는 방법은 아래와 같다.
./[exeFileName] 9190
그리고 클라이언트는 아래 코드와 같이 실행하면된다.
./[exeFileName] 127.0.0.1 9190
127.0.0.1은 루프백 주소로 본인의 로컬 컴퓨터의 IP주소이다.
Network & Socket Programming (TCP/IP 프로그래밍)
Reviewed by Lifer
on
8/30/2018
Rating:
댓글 없음: