jam 블로그

[소켓프로그래밍] 리눅스 소켓프로그래밍 기초 본문

개발 및 관련 자료/C

[소켓프로그래밍] 리눅스 소켓프로그래밍 기초

kid1412 2009. 12. 15. 01:39
728x90

소켓프로그래밍의 흐름입니다.

서버 프로그램 같은 경우
socket -> bind -> listen -> accept -> write(or read) -> close

클라이언트 프로그램 같은 경우
socket -> connect -> read(or write) -> close

서버와 클라이언트가 통신 하는 방식은 다음과 같습니다.

1. 먼저 서버와 클라이언트는 각각 자신의 socket을 만듭니다.
2. 그 다음 서버는 bind함수 즉, 어떤 주소, 어떤 포트를 사용할 것인지 소켓의 종류는 무엇인지를 결정합니다.
3. 그리고 서버의 listen으로 접속을 기다립니다.
4. 이제 클라이언트는 connect 함수로 서버의 어떤 주소, 어떤 포트로 연결을 합니다.
5. 그리고 서버는 accept 함수에서 connect 되었다는 것을 감지합니다.
6. 서버에서 write 함수로 버퍼에 쓴 글을 클라이언트로 보냅니다.
7. 클라이언트는 read 함수로 글을 받고 사용자에게 보여줍니다.
8. 그리도 둘 다 close 됩니다.
다음은 서버 소스와 클라이언트 소스입니다.
[소스 1] 서버 프로그램

[소스 2] 클라이언트 프로그램
Comments