"서버"에서 "클라이언트"로 1KB의 데이터를 보내려고하지만 바로 얻을 수 없습니다. 여기에 내가해야 할 일이 몇 가지 있습니다 : 1) 데이터를 전송하기 위해 boost-asio 소켓을 사용해야합니다. 2) 데이터가 포함 된 유형 (패킷)을 문자열로 직렬화해야합니다.부스트 직렬화를 사용하여 부스트 - asio 소켓 연결을 통해 직렬화 된 형식을 전송하는 중
다음이 무슨 일입니다 * 문자 :
첫째, 서버에서 샘플 텍스트 파일에서 데이터의 1킬로바이트를 얻을. 나는 이것을 만들어서 내가 만든 패킷 유형에 넣는다. 이 데이터를 std :: string으로 유지하기 위해 Packet의 데이터 필드를 정의했습니다. (나는 char *를 시도했지만 잘 동작하지 않았다. 다음 단락을 보라).
둘째, boost text_oarchive를 사용하여 직렬화합니다. 문자열을 포함하는 경우 패킷 형식을 serialize하는 데 아무런 문제가 없습니다. 그러나 실제로 원하는 것은 데이터 배열을 char 배열로 serialize하는 방법입니다 (아래의 소켓에서 더 잘 작동하도록)
세 번째 , 나는 부스트 asio 소켓을 통해 그것을 보냅니다. 소켓 연결을 통해 std :: string을 보내는 방법을 찾을 수 없기 때문에 여기에 문제가 있습니다. 예제 및 문서에서 볼 수있는 모든 것은 문자열이 아닌 char * 형식을 사용하는 버퍼가 필요합니다.
그냥 두통입니다. 도울 수 있니? 내가 예로 및 설명서에 표시
코드없이 대답 할 수없는 경우 질문을 편집하여 지금까지 작성한 코드를 포함하십시오. –