베트남쪽이랑 열심히 하다가 모두 이쪽으로 이관되었는데, 특정 메서드에서 값이 모두 0을 뱉어내길래 봤더니만...

저도 자바는 할 줄도 모르면서 하고 있습니다만...

다음 구문이 안된다는것쯤은 알고 있습니다.

  System.arraycopy(_buff, 0, Bytes.toBytes(flag,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 4, Bytes.toBytes(StartPos.x,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 8, Bytes.toBytes(StartPos.y,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 12, Bytes.toBytes(EndPos.x,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 16, Bytes.toBytes(EndPos.y,Global.USE_BIGENDIAN), 0 , 4);
  System.arraycopy(_buff, 20, Bytes.toBytes(ViaNum,Global.USE_BIGENDIAN), 0 , 4);

c의 strcpy나 memcpy는 다르게 이녀석은 src가 앞에가고 dst가 뒤에가잖습니까...

그런데, java는 잘 모르는제가 어쩌겠습니까... 한참 뒤져보고 다음으로 수정...

  flag = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  StartPos.x = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  StartPos.y = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  EndPos.x = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  EndPos.y = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);
  ViaNum = Bytes.toInt(_buff[idx++], _buff[idx++], _buff[idx++], _buff[idx++], Global.USE_BIGENDIAN);

되는구나...(Bytes클래스는 베트남에서 만들어서 보내준거입니다.)

ㅡㅡ; 음... 심오하구나... 프로그래밍이라는건...
Posted by iStpik