본문 바로가기
Network/소켓프로그래밍

socket programming_C

by 강깅꽁 2016. 12. 17.

socket이란 client-server 모델로 이 두 종단을 네트워크를 통해 데이터를 주고 받고 하기 위한 것이다.

- os마다 제공해주는 함수가 다르다.(linux,window)

- 해당 글은 linux를 기준으로 작성됨

- server-client는 다음과 같은 흐름을 가지고 있다.


server는

1. socket을 초기화(socket)

2. socket에 ip와 port 설정(bind)

3. 연결 대기(listen)

4. 클라이언트의 접속을 받아들임(accept)

5. 데이터 송수신(recv,send)

6. 연결 종료(close)


client는

1. socket 초기화(socket)

2. server로 접속(connect)

3. 데이터 송수신(send,recv)

4. 연결 종료(close)







여기서 신경써주어야 할 부분은 ip와 포트를 htonl, htons를 이용한다.

그 이유는 쓰지 않을 경우 little endian으로 값이 저장 되기 때문에 네트워크 바이트 순서로 바꾸어 주기 위해서 사용한다.

inet_addr도 같은 이유에서 이다.



*해당 글은 개인 공부를 하기 위한 목적이므로 개인적인 생각과 잘못된 지식이 존재할 수 있습니다.