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

소켓 서버 연속 데이터 수신

0 추천
try {
    Log.i("SocketService","Start Service");

    serverSocket = new ServerSocket(8003);
    Socket socket = serverSocket.accept();
    DataInputStream inputStream = new DataInputStream(socket.getInputStream());
    //InputStreamReader inputStream = new InputStreamReader(socket.getInputStream());

    //DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream());
    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

    OnOff.putExtra("OnOff",State);
    sendBroadcast(OnOff);
    int value = 0;
    while (isLoop) {

        while((value = reader.read()) != -1){
            int i = 0;
            readval[i] = (byte) reader.read();
        }
        //ctrlreceive(readval,readcnt);
        Log.i("SocketService","received:"+new String(readval));
        sendintent.putExtra("receive", readval);
        sendBroadcast(sendintent);

   }
c언어로 만든 클라이언트에서 배열을 보내고있고
위처럼 서버에서는 byte형 배열에 데이터를 수신해야 하는데 서버랑 클라이언트랑 통신을 하는 상태에서는  클라이언트에서 데이터를 보내면 서버쪽에서는 아무것도 수신 되지않고 클라이언트를 강제 종료 시키면 그때서야 뭔가가 수신되는것처럼 보입니다 뭐가 잘못된건가요?
계절풍M (270 포인트) 님이 2017년 7월 6일 질문

1개의 답변

0 추천
int i = 0;

i는 영원히 0이네요.
readval[]의 정의는 어딘가에 있겠지만,
값을 정리해서 넘겨야할 것같네요.

좋은 샘플로 시작하는 게 좋습니다.
경험이 작다면 검색을 더 많이 해서 최고의 샘플을 찾는데 시간투자를 더 하는 걸 추천합니다.
Will Kim (43,170 포인트) 님이 2017년 7월 7일 답변
...