java 질문인데요.. 두번째
글쓴이: mayaabba / 작성시간: 목, 2010/10/07 - 12:59오후
자바 질문 자꾸 여기다 올려서 죄송합니다..;;;
괜찮은곳 추천좀 해주세요.
소켓을 통해서 byte 로 수신을 받았습니다. 다음과 같이요.
byte[] pBuf = new byte[8192];
InputStream in = socket.getInputStream();
int recvSize = in.read(pBuf);
근데 문제는 제가 패킷을 송신 할때 패킷앞에
namespace packetflag {
enum{
a, b, c,
};
};
를 주고 맨 앞 1바이트에 플래그 값을 넣거든요.
수신측 에서 이놈을 제거 하려고 봤더니 byte에서는 어떻게 하는 건지.....
for 문으로 돌리자니 오버헤드가 너무 큰것 같네요.
c 에서는 memcpy(&pBuf[1], ,); 뭐 이런식으로 하면 되는데.. java는 어떻게 하는건지 모르겠습니다.
String 으로 변환해서 substring()메소드로 제거는 되는데 다시 getBytes()로 변환 해봤더니
NULL 값 까지만 변환이 되는지 recvSize가 8192인데 7바이트 밖에 넘어 오지 않더군요..;;;;
pBuf 앞에 플래그 값을 잘라 버릴수 있는 방법 없나요?
Forums:
찾았습니다.
검색어를 바꿔보니 금방 찾네요....;;;
댓글 달기