◆ 무한한 가능성/& Programming

[펌글] SOCK_STREAM 소켓의 특성

치로로 2009. 1. 12. 00:31

출처 LEOLO!!! Hakuna Matata | 레올로
원문 http://blog.naver.com/leolo/70005375001

SOCK_STREAM 소켓의 특성

- 메시지 경계를 유지하지 않는다. 수신 종점은 송신 종점이 write를 몇 번 호출하여 데이터를 전송하였는지 알 수 없고, 수신한 바이트의 스트림에서 언제 write 함수가 시작하고 끝났는지 알 수 없다. 예를 들어 보내는 쪽에서 처음에 25바이트를 보내고 다음으로 30바이트를 보냈다면, 수신측에서는 25바이트를 받고 다음으로 30바이트를 받을 수도 있고, 한번에 55바이트를 받을 수도 있다.


- 데이터는 초기에 쓰여진 순서 그대로 수신된다는 것을 확신할 수 있다. 즉, 보낸쪽에서 순서에 따라 보낸 데이터는 수신측에 순서대로 도착한다.


- 원격 종점은 쓰여진 모든 데이트를 에러 없이 수신한다는 것을 확신할 수 있다. 만약, 실패하는 경우, 에러를 복구할 수 있는 가능한 방법을 모두 시도해본 다음에 에러를 표시한다. 복구 시도는 자동으로 이루어지며, 응용 프로그램이 직접 복구를 시도하지 않는다. 물론, 서버 또는 클라이언트 측의 연결이 끊어진 경우는 응용 프로그램이 재접속 등의 동작을 수행하여야 한다.


- 데이터는 한 쌍의 연결된 소켓간에 전송된다. 즉, 데이터 전송 전에 서버와 클라이언트 측간의 연결이 이루어진 다음에 가능하다.


참조 : 리눅스 소켓 프로그래밍

추가 : LEOLO