소켓으로부터 바이트 스트림을 받음

->

단순 에코서버가 아닌 유의미한 애플리케이션 프로토콜을 만들려면, 메시지 경계를 파싱해야함

->

버퍼 활용성 올릴려면 링버퍼 써야하는데

그러면 마지막에 바이트스트림이 끊기는 경우를 생각해야함

->

나의 생각

1. 고정 바이트 헤더를 써서

헤더길이 만큼의 바이트를 먼저 받고, 헤더 읽어서 페이로드 길이 알아냄, 페이로드 길이만큼 바이트 수신하고, 다시 다음 메시지. 헤더만큼 수신을 대기함 => 수신이 여러번 호출됨


2. 링버퍼 쓰다가 메시지 바이트 연속성이 끊기면 해당 부분만 복사

길이 10인 메시지인데, 버퍼 마지막에 5개 바이트가 찼고,

버퍼 앞부분에서 그 뒤 5개 바이트가 찼으면

어떤게 복사해서 바이트 이어 붙인 뒤 사용


3. 소켓에 할당한 버퍼에서 따로 바이트 복사 해가지고 메시지 조립을 함. 복사비용 생김


나의 하찮은 머리론 이정도밖에 생각이 안 나는데 훈수점