안드로이드 개발 질문/답변
(글 수 45,052)
DatagramPacket packet = new DatagramPacket(buf, buf.length, serverAddr,SERVERPORT);
Log.d("UDP", "S: Receiving..."+buf.length);
socket.send(packet);
textBox.append("Send Message : " + editBox.getText() +"\n");
buf = new byte["이 크기를 구하는 법"];
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
textBox.append("Recv Message : " + new String(packet.getData())+ "\n");
Log.d("UDP", "S: Receiving..."+buf.length);
socket.send(packet);
textBox.append("Send Message : " + editBox.getText() +"\n");
buf = new byte["이 크기를 구하는 법"];
packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
textBox.append("Recv Message : " + new String(packet.getData())+ "\n");
현재 이런 식으로 안드로이드에서 C쪽으로 메시지를 넘기면
C쪽에서 메시지를 응답하는 방식으로 구현하고 있습니다
문제점이 만약 제쪽에서 문자열을 5개보내면
받을시에도 5개밖에 받지를 못합니다
ex)abcde 전송시 xxxxx 수신, abcdef 전송시 xxxxxx 수신
상대쪽에서 보내는 메시지의 크기를 알수 있는 방법이 없을까요?




메시지 규약 그러니까 데이터 보내고 받는 프로토콜에서 앞이나 뒤에 길이를 첨부하시죠...
대부분의 프로토콜들이 그렇게 이뤄져 있는건 이유가 있는겁니다.