//소켓통신하는 고
public class NetworkTask extends AsyncTask<Void, Void, Void> {
String dstAddress;
int dstPort;
NetworkTask(String addr, int port) {
dstAddress = addr;
dstPort = port;
}
@Override
protected Void doInBackground(Void... arg0) {
try {
socket = new Socket(dstAddress, dstPort);
Log.d(LOG, "소켓생성");
socket_out = new DataOutputStream(socket.getOutputStream());
Log.d(LOG, "소켓 출력");
socket_in = new DataInputStream(socket.getInputStream());
Log.d(LOG, "소켓 입력");
while (true) {
data = socket_in.read();
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (socket != null) {
try {
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
}
}
A 액티비티에서는 ip와 port 번호 를 입력받아서 B액티비에서 값을 넘겨받아서 ip와 port를 값을 넘겨받아서 B액티비티에서 마우스와 키보드를 제어할 액티비티 화면 마우스 액티비티와 키보드 액티비가 있습니다.
근데 제가 먼저 마우스를 선택해서 소켓통신을 하면 잘된 후에 선택화면으로 finish()는 안주고 뒤로 간뒤 선택화면에서 키보드를 사용하면 앱이 중지됨으로 뜨게 됩니다. 에러는 서버쪽에서
public class ServerTest implements Runnable {
public static void main(String[] args) {
Thread desk = new Thread(new ServerTest());
desk.start();
}
@Override
public void run() {
try {
// TODO Auto-generated method stub
ServerSocket serverSocket = null;
Socket clientSocket = null;
DataOutputStream out = null;
DataInputStream in = null;
KeyBoard k = new KeyBoard();
Mouse m = new Mouse();
serverSocket = new ServerSocket(3333);
clientSocket = serverSocket.accept();
System.out.println("Client connect");
out = new DataOutputStream(clientSocket.getOutputStream());
in = new DataInputStream(clientSocket.getInputStream());
int mouseX = 0, mouseY = 0;
while (true) {
int i = 0;
System.out.println("read i의 값은: "+i);
i = in.readInt(); //
System.out.println("클라이언트로부터 받은 int : " + i);
out.writeInt(i);
Point position = MouseInfo.getPointerInfo().getLocation();
switch (i) {
빨간색 부분에서
java.lang.Thread.run(Unknown Source) 이런에러가 뜹니다.
이유가 무엇인지 궁금합니다