精華區beta java 關於我們 聯絡資訊
@Override protected void onStart(){ super.onStart(); Thread thread1=new Thread(new socketServer()); thread1.start(); Thread thread2=new Thread(new socketClient()); thread2.start(); } //結束前關閉連線 @Override protected void onStop(){ closeSocket(); super.onStop(); } //手機端愈接收和處理訊息 private class socketServer implements Runnable{ @Override public void run() { // TODO Auto-generated method stub try { if(sServer==null){ sServer=new ServerSocket(port); // sServer=new ServerSocket(); sServer.setReuseAddress(true); // sServer.bind(new InetSocketAddress(port)); } if(!sServer.isClosed()){ Log.i("isConnect", "Socket Server is Running: "+port); handler.post(runable); } while(!sServer.isClosed()){ Log.i("test", "socketcheck"); socket1=sServer.accept(); if(!socket1.isClosed()){ Log.i("isConnect", "Socket1 Server is Running: "+port); handler.post(runable); } Thread thread=new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub try { BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(socket1.getInputStream())); // DataInputStream dataInputStream=new DataInputStream(socket1.getInputStream()); while(socket1.isConnected()){ BufferedWriter bufferedWriter=new BufferedWriter(new OutputStreamWriter(socket1.getOutputStream())); String msg=bufferedReader.readLine(); Log.i("get", msg); // Log.i("get", "msg"+dataInputStream.readLine()); bufferedWriter.write(msg+"\n"); bufferedWriter.flush(); // Toast.makeText(baseActivity.this, msg, Toast.LENGTH_LONG).show(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Log.i("error", "msgerror"); } } }); thread.start(); } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Log.i("error", "openthreaderror"); // finish(); } } } //伺服器端 public class socketClient implements Runnable{ @Override public void run() { // TODO Auto-generated method stub try { socket2=new Socket(ip, port); if(socket2.isConnected()){ Log.i("client", "success:"+ip+":"+port); // sendMessage("$START,0030003100380037*46/"); // handler.post(runable); } // Log.i("get", "test"); BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(socket2.getInputStream())); // Log.i("get", "test"); // DataInputStream dataInputStream=new DataInputStream(socket2.getInputStream()); while(socket2.isConnected()){ // Log.i("msg", bufferedReader.readLine()); // Log.i("get", "test"); String msg=bufferedReader.readLine(); // if(msg!=null){ // Log.i("get", "testend"); // Log.i("msg", "check"); // Log.i("msg", "msg"+dataInputStream.readLine()); // } if(bufferedReader.readLine()!=null){ Log.i("msg", "check"); Log.i("msg", msg); handler.post(runable); } } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Log.i("error", "clienterror"); } } } //關閉連線的地方 private void closeSocket(){ try { if(sServer!=null&&!sServer.isClosed()){ sServer.close(); } if(socket1!=null&&!socket1.isClosed()){ socket1.close(); } if(socket2!=null&&!socket2.isClosed()){ socket2.close(); } } catch (Exception e) { // TODO Auto-generated catch block Log.i("socket close", "failed"); e.printStackTrace(); } } private Runnable runable=new Runnable() { @Override public void run() { // TODO Auto-generated method stub } };; //送出資料訊息 public static void sendMessage(String msg){ if (socket2!=null&&socket2.isConnected()){ BufferedWriter bufferedWriter; try { bufferedWriter=new BufferedWriter(new OutputStreamWriter(socket2.getOutputStream())); bufferedWriter.write(msg); bufferedWriter.flush(); } catch (Exception e) { // TODO Auto-generated catch block Log.i("error", "msg send failed"); e.printStackTrace(); } }else{ Log.i("error", "not connect"); } } 我可以確保程式可以送出訊息給機器 但偏偏就接不到機器返回的值 希望可以有人來討教 這是我工作業務我不想飯碗不保拜託 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.16.201 AtkinsV3:轉錄至看板 AndroidDev 04/09 10:53