java 질문인데요.. 두번째

mayaabba의 이미지

자바 질문 자꾸 여기다 올려서 죄송합니다..;;;

괜찮은곳 추천좀 해주세요.

소켓을 통해서 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 앞에 플래그 값을 잘라 버릴수 있는 방법 없나요?

mayaabba의 이미지

검색어를 바꿔보니 금방 찾네요....;;;