UDP를 사용하는 두 대 이상의 컴퓨터간에 통신이 이루어지는 Java 프로그램을 작성하고 있습니다. 내 응용 프로그램은 네트워크를 통해 직렬화 된 객체를 다른 컴퓨터로 보내서 직렬화 및 처리됩니다. 나는 지금까지 한 종류의 물건을 보내는데 성공했다.자바를 사용하여 UDP를 통해 다른 객체를 보내고받습니다.
내 문제는 발신자가 다른 종류의 개체를 보낼 수 있고 수신자가 수신하여 해당 유형으로 다시 전송할 수있게하려는 것입니다. 그러나 UDP는 바이트 버퍼를 할당하고 버퍼에 데이터를 수신하므로 서로 다른 객체가 서로 다른 크기를 가지기 때문에 수신 된 객체의 유형을 형 변환하거나 검출 할 수 없습니다.
다른 종류의 개체를 UDP를 사용하여 보내고 다른 쪽 끝에서받을 수있는 방법이 있습니까?
감사
을 (I, 여기에 코드를 단지 몇 가지 아이디어를 요구하지 않음)편집 : 나는의 유형이 무엇인지 모른 채 다른 개체 유형을 송/수신 할 수있는 가장 좋은 방법을 찾고 있어요 다음 예상 개체. 세 가지 유형의 객체가 있고 어떤 유형의 객체 유형이라도 받아들이 길 기대합니다. 브라이언 (Brian)의 의견을 듣고 나서 또 다른 한 가지 : 문자열, 배열 등과 같이 가변 크기의 데이터 유형에 대한 버퍼 크기를 설정하는 방법. UDP 패킷을 수신 할 때 먼저 해당 객체를 수신 할 수있는 크기의 버퍼를 할당해야합니다. 이것은 어떻게 든 내 원래의 질문과 관련이 있습니다.
일부 코드를 게시하는 것이 유용 할 수 있습니다. 객체의 유형에 따라 내용의 크기가 다를 수 있습니다. –
buildin java serialization을 사용하지 않아도 될까요? 이 경우 : 수신기에서 처리 할 수 있도록 콘텐츠의 클래스 이름을 보내면됩니다. – Daniel
@Brian : 사실,하지만 개체에 원시 데이터 형식 만 사용했다면 문제가되지 않을 것입니다. @ 대니얼 : 아니요, 여기에 내장 된 것을 사용하고 있습니다. – AAA