안녕하십니까. 이제 막 안드로이드에 입문한 학생입니다.

제가 현재 개발하고 있는것이 있는데. 서버를 C++로 두고 개발을 하고 있습니다.

근데 제가 C끼리 네트웤프로그래밍은 하여봤는데 안드로이드클라이언트와 C++서버는 네트웤프로그래밍이 처음입니다.

책을 찾아보며 여차저차 서버로 메시지보내는거까진 해보았는데

이제 패킷을 조립해서 보내는걸 하고 싶은데 잘 안되네요.  C에서 프로그래밍한것처럼 해보곤있는데..

 

제가 C++에서 네트웤통신을 할때는 헤더구조체에 커맨드값을 넣어서 보내주면 그 커맨드값으로 통신을하였는데

그땐 서버에서 헤더를 recv받아서 헤더의 cmd로 구분해서 짰었는데..

자바에선 그 패킷의 헤더를 어떻게 구별시켜줘야하는지 감이잘 안잡히네요 ㅠㅠ

 

 

현재는 이런식으로 해보고있습니다.

주석을 친부분이 패킷을 해보려다 실패한부분이고 안친부분은 그냥 메시지만 보내본 부분입니다.

 

 public void SendData()
 {
  byte[] packet = new byte[100];
  String temp;
  InputStream in = null;
  OutputStream out = null;
  temp = text.getText().toString();
  
  text.setText("");
  Toast.makeText(this, temp, Toast.LENGTH_SHORT).show(); // 텍스트가 잘뜨나 확인
  
  byte[] sendip = null;
  
  //ByteBuffer buffer = ByteBuffer.allocate(200);
 
  try
  {
   in = socket.getInputStream();
   out = socket.getOutputStream();
   
   sendip = temp.getBytes("EUC_KR");
   
   //buffer.putInt(100);
   //buffer.put(sendip);
   
   //buffer.flip();
   
   //buffer.get(packet);
   
   //out.write(packet);
   out.write(sendip);
  }
  catch (IOException e)
  {
   e.printStackTrace();
  }
  
 }

 

클라이언트에서 서버로 패킷을 보내줄때 헤더와 바디부분을 어떻게 구분해줘야하는지 조언좀 해주시면 감사하겠습니다.