제목에서 내 문제를 설명하는 방법을 잘 모르지만 내 문제를 자세히 설명하려고합니다.비동기 TCP 소켓 바이트 합치기
기본적으로 저는 P2P가 아닌 모든 사용자가 IRC와 비슷한 중앙 서버에 연결하는 채팅을 코딩하고 있습니다. 연결은 비동기 적이며 거의 완벽하게 작동합니다. 주된 문제는 한 번에 한 사용자 (또는 한 사용자의 서버)로 많은 양의 데이터를 보내면 바이트가 병합되어 오류가 발생할 수 있다는 것입니다. 데이터의 나머지 부분 앞에 데이터의 길이를 포함하는 4 바이트 헤더를 추가하여이 접근했습니다. 여전히 바이트는 병합되는 것처럼 보입니다. 나도 설정하려고 시도했습니다 NoDelay ~ 사실 및 DontFragment ~ 거짓; 여전히 작동하지 않습니다.
바이트를 병합 할 때 첫 번째 바이트 만 처리 한 다음 나머지는 아무 것도하지 않는 것이 문제라고 생각합니다. 이 문제에 접근하는 가장 좋은 방법은 무엇입니까? 그들은 스트림라고 부르는 이유이다 http://pastebin.com/f0MvjHag
'이 문제에 접근하는 가장 좋은 방법은 무엇입니까?'귀하의 코드가 도움이 될 것입니다. –
@orzechowskid 물론. op의 수신 콜백 소스에 대한 링크를 추가했습니다. – Fetrix
에 있으므로 질문에 코드를 추가하는 것이 관례입니다. 코드가 너무 길면 자체적으로 포함 된 짧은 예제로 작업하십시오. – spender