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로 읽어 옵니다.