TCP/IP를 통해 데이터를 보내야하는 C++ 코드를 작성 중입니다. 이 코드를 Linux/Windows/Osx에서 이식 할 수 있기를 바랍니다. 그것이 내가 휴대용 네트워크 코드를 작성 처음으로 지금, 나는 기본적으로 같은 특정 개체에 추가 할 몇 가지 간단한 기능이 필요합니다 지금에 필요한 모든 것입니다C++에서 네트워크 프로토콜 객체 직렬화
class myclass{
...member...
public:
string serialize(){
std::ostringstream out();
out << member1;
out << member2;
out << member3;
return out.str();
}
}
을 .... 어쨌든 ostringstream 관련 문서를 읽기 시작하고 바이너리/텍스트 문제가 발생합니다. 사실 그것은 줄 바꿈을 영 시스템의 올바른 순서로 변환 할 것입니다. 예를 들어, 멤버가 const char * foo = "Hello \ nMan \ n"에 대한 포인터 인 경우, 이는 리눅스의 특정 바이트 시퀀스로 변환되고, 다른 바이트 시퀀스는 Windows ... 등으로 변환됩니다. 내 바이트는 인터넷을 통해 패킷으로 이동하고, 다른 OS 머신이이를 읽으며 문제가 발생할 것이라고 생각합니다 ... 이제는 ostringstream
을 ostringstream(ios::bin)
으로 초기화 할 수 있다고 읽었습니다 ... 문제가 해결 될 수 있습니까? 당신이 많이 주시면 감사하겠습니다 몇 명확히 선을 보낼 수 있다면 ??? 내가, 전체 그림에 대한 혼란 해요 istringstream(ios::bin)
를 사용하는 데 직렬화 기능을 사용합니다.
감사합니다.
예. 부스트 직렬화에 대해 알아볼 것 같아요 ... 난 diffucult 것으로 생각했지만 튜토리얼을보고 나서 이미 사용하고 있습니다. 좋은 선택 인 것 같아. gf와 Dirk에게 감사드립니다. – gotch4