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

안드로이드 소켓통신 줄바꿈

0 추천

C#서버를 두고 안드로이드 클라이언트로 소켓통신을 하는데 안드로이드에서 버튼을 클릭하면 클릭할때마다 데이터를 전송하게 만들었습니다. 연결 대기중과 연결완료 처럼 붙여서 추가가 안되고 데이터 앞뒤로 줄바꿈이 생깁니다버튼을 눌러 데이터를 전송하면 C#서버 리스트 박스에 데이터가 추가가 되는데 "\n" 이 된 상태로 추가가 되는데 "\n" 이 없이 추가를 할려면 어떤 부분을 수정을 해야할까요?

 connect.setOnClickListener(new View.OnClickListener() {     //소켓 연결버튼
            @Override
            public void onClick(View v) {
                addr = addressInput.getText().toString().trim();
                ConnectThread thread = new ConnectThread(addr);
                thread.start();
                connect.setEnabled(false);
            }
        });
        Auto.setOnClickListener(new View.OnClickListener() {        //버튼 데이터 전송
            @Override
            public void onClick(View v) {
                String a = "Auto";
                SendThread send = new SendThread(a);
                send.start();
            }
        });
        Manual.setOnClickListener(new View.OnClickListener() {      //버튼 데이터 전송
            @Override
            public void onClick(View v) {
                String m = "Manual";
                SendThread send = new SendThread(m);
                send.start();
            }
        });

class ConnectThread extends Thread {
        String ipaddr;

        public ConnectThread(String addr) {
            ipaddr = addr;
        }

        public void run() {
            try {
                s = new Socket(ipaddr, 10000);             
                is = new DataInputStream(s.getInputStream());
                os = new DataOutputStream(s.getOutputStream());

                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        if (s.isConnected()) {
                            Toast.makeText(getApplicationContext(), "연결됨", Toast.LENGTH_LONG).show();
                        } else {
                            Toast.makeText(getApplicationContext(), "연결안됨", Toast.LENGTH_LONG).show();
                        }
                    }
                });


            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    class SendThread extends Thread {
        String data;
        public SendThread(String data) {
            this.data = data;
        }
        public void run() {
            if (s.isConnected()) {
                try {
                    os.writeUTF(data);
                    os.flush();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }


데이터 전송부분 코드와 스레드 클래스 부분입니다. C#서버에서는 Binary reader로 읽어 옵니다.

asdf1357 (120 포인트) 님이 2022년 6월 10일 질문
asdf1357님이 2022년 6월 10일 수정

답변 달기

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