게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 readUTF() 질문드립니다.
게시물ID : programmer_20776짧은주소 복사하기
작성자 : 전벙글이예요
추천 : 0
조회수 : 1282회
댓글수 : 2개
등록시간 : 2017/06/08 07:20:35
옵션
  • 본인삭제금지
밑밑글에 질문드렸었는데 다시 질문드리게 되어 죄송합니다.

본삭금이기에 사진첨부가 안되어서... 이번엔 사진을 첨부하였습니다.

이 문제로 지금 3일간 스톱상태라...... 패닉입니다 ㅠㅠ

자바를 서버로 두고 파이썬을 클라이언트로 뒀습니다.

자바 서버와 파이썬 클라이언트는 소켓통신을 이용해 연결하는데

서로 연결하는 데에는 성공했습니다.

그러나 파이썬에서 자바로 데이터를 전송하면 readUTF에서 읽지를 못합니다.

System.out.print를 넣어 확인해본 모습과

자바 서버 소켓코트, 파이썬 클라이언트 코드를 첨부합니다.

첫번째 사진이 소켓생성
두번째가 리시버 생성
세번째가 리시버 시작 함수입니다.
마지막 사진은 system.out.print로 어디서 멈추는지 확인해본 모습입니다.

1.jpg
2.jpg
3.jpg
4.jpg


파이썬에서 자바로 보내는 데이터는 문자열입니다.

"1\r\n"
"2\r\n"
"3\r\n"

위와 같은 문자열을 보내는데 파이썬 코드에선 에러없이 send 동작도 완료하고
while문을 돌면서 지속적으로 데이터를 보냅니다.

파이썬 서버에는 데이터를 잘 보내구요...
자바 서버에 보낼때만 위와같은 문제가 발생합니다...ㅠㅠ

구글링을 해보니 자바와 C언어의 소켓통신에서
C언어 -> 자바로 데이터를 보낼때 readUTF() 에서 문자열의 끝을 읽지 못한다고 합니다.
그래서 끝에 strcat(message, "\r\n") \r\n를 추가해서 보내준다고 해요.
파이썬도 마찬가지라 생각하여 끝에 \r\n을 붙여준것입니다.
꼬릿말 보기
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호