마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드와 리눅스 소켓통신 질문드립니다.

0 추천
char buf[1024];
int len;
while(1) {
len = read(socket, buf, sizeof(buf));
strcat(buf, "\r\n");
send(socket, buf, sizeof(buf),0);

String rcvData = "ERROR";
BufferedReader networkReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
rcvData = networkReader.readLine();
log.log(rcvData);

위에가 서버에서 소켓통신 후에 accept 한 후 데이터를 읽고 보내는 코드입니다. 밑에는 안드로이드에서 데이터를 받으면 출력하는 코드입니다.

서버는 리눅스에서 C로 작성했고 클라이언트는 안드로이드입니다.

안드로이드에서 서버로 보내는 데이터는 잘 나오는데 서버에서 안드로이드로 데이터를 보내면

그 데이터의 길이가 이전에 보냈던 데이터 길이보다 짧을때 이전에 보냈던 값들이 뒤쪽에 남아있습니다.

12345 다음 0을 보내면 02345 이렇게요

어떻게 해결해야할까요..

익명사용자 님이 2015년 5월 19일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...