현재 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()