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

안드로이드(client) 파이썬(server)통신 데이터 바뀔 때마다 보내기

0 추천

현재 tcp 통신을 짜고 있습니다.

자바가 클라이언트고 파이썬이 서버 역할을 합니다.

클라이언트에서 화면 터치시(화면 x,y값) 값이 바뀌는데 그 떄마다 서버로 데이터를 넘기려고 합니다.

현재는 while문을 잘 사용하고 있지 못해서 첫 터치시 데이터가 계속 들어가고 다음 터치 데이터도 계속 들어가는 무한루프 상태입니다.

어떻게 해야할지 몰라 글을 남깁니다.

도와주세요

**클라이언트 소스**

 터치시 보낼 데이터 입니다.

try {
            while (true) {
                dos = new 		 DataOutputStream(socket.getOutputStream());

               msg = "";

               x= (float) 0.0;

               y= (float) 0.0;

               x+=CameraFragment.x;

               y+=CameraFragment.y;

               if (x == 0.0 && y == 0.0) {

                    continue;

               }
                msg += "x : " + x + " , y : " + y + "\n";

               dos.writeUTF(msg);

               Log.w("서버전송데이터1", msg);

               dos.flush();
               msg = "";


           }

        } catch (Exception e) {
            e.printStackTrace();
           Log.w("버퍼", "버퍼생성 잘못됨");

       }
        Log.w("버퍼", "버퍼생성 잘됨");

 

서버 소스

import socket

host = 'xxx.xxx.xx.xxx' # 호스트 ip

port = 10002            # 포트번호

ADDR=(host,port)

server_sock = socket.socket(socket.AF_INET)

server_sock.bind(ADDR)

server_sock.listen(1)

print("기다리는 중")

client_sock, addr = server_sock.accept()

 

print("Connected by", addr)

 

while True:

    data = client_sock.recv(1024)

    print(data.decode("utf-8"))

    

client_sock.close()

server_sock.close()

마시마로 (120 포인트) 님이 2019년 10월 1일 질문

1개의 답변

0 추천
리스너를 사용해서 터치마다 보내는 식으로 하면 되지 않을까요?
유령2세 (370 포인트) 님이 2019년 10월 4일 답변
...