UDP 패킷의 하나의 데이터그램에 두 개의 문자열을 보내는 것이 가능한지 알고 싶습니다. 내 문자열 1의 텍스트가 unix이고 문자열 2의 텍스트가 linux라고 가정합니다. 문자열을 병합하고 싶지 않고 전송하는 동안 분리하고 싶습니다.
다음은 서버 유닉스에서 성공적으로 읽는 작업 코드입니다.
String name1 = "unix";
String name2 = "linux";
toSend = name1.getBytes();
DatagramPacket packSend = new DatagramPacket (toSend, toSend.length, ipConn, 9876);
connection.send(packSend);
2개의 별도의 데이터그램 패킷을 생성하고 데이터를 별도로 보내는 것이 현명한가요?
답변1
일반적인 형식(xml, json, uuencode, ...)을 사용하거나 문자열에 나타나지 않을 수 있는 구분 기호(개행 문자, ...)를 사용하여 어떻게든 데이터를 직렬화한 다음 해당 문자열을 간단히 분할해야 합니다.
따로 보내실 경우 패킷 중 하나가 분실되거나 다른 순서로 수신될 수 있으니 주의하시기 바랍니다. 따라서 이 데이터가 관련성이 있다면 단일 패킷으로 보내는 것이 합리적입니다.
답변2
분리하려면 두 개의 패킷이 필요하지만, 더 효율적인 방법은 단일 패킷 내에서 전송한 다음 수신기에서 패킷을 분할하는 것입니다.