바이트 하나로 몰아박아서 메시지 하나를 통째로 보냄??
받는곳에선 뭐 내가 정한 프로토콜 규약대로 할거아녀
앞에 4바이트는 Header용도로 쓰고 int로 유형 체크
그 뒤로 부터는 Body로 String이 되겠지
보낼때 바이트로 보내고 읽을때 바이트로 꺼내고 이렇게 하는게 좋음??
아니면 헤더만 페킷으로 먼저 4바이트 보내고
그 다음은 또 헤더로 body길이 4바이트 보내고
그 뒤로 Body 보내고
연속으로 따다닥 보내냐??
후자는 블로킹에서 자주 쓸거같은데 논블록 비동기는 read()먹이면
콜백으로 쓰레드에서 바로 complete() 먹으니까
하나의 바이트에 몰아서 보내는게 낫지?
받는곳에선 뭐 내가 정한 프로토콜 규약대로 할거아녀
앞에 4바이트는 Header용도로 쓰고 int로 유형 체크
그 뒤로 부터는 Body로 String이 되겠지
보낼때 바이트로 보내고 읽을때 바이트로 꺼내고 이렇게 하는게 좋음??
아니면 헤더만 페킷으로 먼저 4바이트 보내고
그 다음은 또 헤더로 body길이 4바이트 보내고
그 뒤로 Body 보내고
연속으로 따다닥 보내냐??
후자는 블로킹에서 자주 쓸거같은데 논블록 비동기는 read()먹이면
콜백으로 쓰레드에서 바로 complete() 먹으니까
하나의 바이트에 몰아서 보내는게 낫지?
어떤거 하는지 모르겠는데 IOCP 게임서버 예제 만들때 프로토콜 규약에 패킷 구조체 만들어놓고 보낼때는 WSASend 걸어놨음.
받는 부분에서는 패킷 조각 들어오는거 하나로 합쳐주는 작업해서 패킷처리했고
하나의 메시지 형태를 보낼때 결국 몰아서 보내??
아니면 벞퍼나 채널에 따다닥 연속으로 조각 단위까지 걍 보내?
ㄴ니가 생지랄을 해서 모아서 보낸다고 해도 TCP 특성상 그게 한방에 들어오는 경우도 있고 조각조각 나눠져서 들어오는 경우가 있다 결국엔 응용단 버퍼에서 소켓 버퍼의 데이터를 모아놔야 하나의 패킷이 설정되는거다. Receive 이벤트 뜰때마다 패킷 복사하고 버퍼에 쌓아둔 데이터 해더 부분 뜯어서 헤더부분의 데이터 사이즈 확인하고 버퍼에 있는 사이즈 확인해서 헤더 사이즈랑 맞으면 하나의 패킷이 완성
넘모 이쁘다
위에 친구가 설명 잘해놔슴 결국 저렇게 해야댐. 어차피 tcp로 받으면 패킷조각으로 들어와도 순서는 무조건 맞춰지게 되어있으니까 첫 바이트 읽어서 그 사이즈만큼 패킷 조각 맞추면 댐