vc 서버와 java 클라이언트 소켓연결에 관해서...
글쓴이: 익명 사용자 / 작성시간: 금, 2001/11/30 - 10:18오전
정말 죽겠습니다.
머리가 나빠서 그런지 아무리 해도 영원히 삽질만... ㅠ.ㅠ
우선 vc 쪽은 제가 소스를 볼 수 없는 상황입니다.
자바 클라이언트에서 접속한 후(DataOutputStream 사용), writeInt나
writeChar 로 값을 넘겨주면 받지만, 문자열을 getBytes 메서드를 이용해
서 바이트로 변환해서 넘겨주면 받지를 아예 받지를 못합니다. (패킷이 들어
왔는지 조차 인식을 못하니 환장 하겠습니다) flush 를 사용해서 버퍼를 비
워
줘도 묵묵무답이고...
문제는 vc 쪽으로 100byte 정도의 문자열을 보내줘야 한다는 건데, 아시다시
피 writeInt나 writeChar로 보내면, 한번에 4byte or 1byte 밖에 못 보내
고... (더욱 황당한 건, 이놈들은 flush를 쓰지도 않았는데, 바로 전송해 버
립니다. 분명 vc 쪽에서는 여러 바이트를 받을 수 있도록 구현되어 있는데도
불구하고...)
원래 목표는 100|내용1|내용2 이런식으로 패킷을 보내고, 맨 앞은 short 형
으로, 전체 패킷의 byte length고, |은 각 필드값을 나누는 구분자 입니다.
즉, vc에서 100 바이트 만큼을 읽어, |을 기준으로 각 필드를 나누는 루틴입
니다.
vc 쪽은 단 한번만 입력을 받고, 소켓을 종료하도록 되어 있습니다.
휴... 도대체 어떻게 하면 좋을 지... 고수님들의 조언 부탁 드립니다. ㅠ.
ㅠ
Forums:
Re: vc 서버와 java 클라이언트 소켓연결에 관해서...
일단 저도 VC쪽은 정확히 모르지만...
WindowAPI를 사용했다면 재가 알기론 기본적으로...
라인버퍼가 아닐까 생각이 드네요..
라인버퍼인경우 마지막바이트에 \n이 붙어야
블럭킹이 해제가 되겠지여.. 또는 그 싸이즈만큼 받아야 블럭킹 해제 되겠지
요..
도움이 되었나 몰겠네여..
이상 허접 답변이었습니다.
댓글 달기