// 声明一个ServerSocket对象 public static ServerSocket serverSocket; //通信 public static Socket socket; //输出流 private static OutputStream os; //输入流 private static InputStream is;
/** * 启动TCP */ public class socket_Thread extends Thread { @Override public void run() { try { serverSocket = new ServerSocket(); serverSocket.setReuseAddress(true); //端口 serverSocket.bind(new InetSocketAddress(9090)); socket = serverSocket.accept(); is = socket.getInputStream(); Receive receive = new Receive(); receive.start(); } catch (IOException e) { e.printStackTrace(); } } }
/** * 接收/发送数据 */ class Receive extends Thread { @Override public void run() { while (true) { try { final byte[] data = new byte[1024]; final int dataLen = is.read(data); runOnUiThread(new Runnable() { @Override public void run() { if (is != null) { if (dataLen != -1) { String cmd = new String(data, 0, dataLen); Log.i("客户端返回的数据:\t", cmd); try { os = socket.getOutputStream(); os.write(result.getBytes()); } catch (IOException e) { e.printStackTrace(); } tvResult.setText("PC端返回:" + cmd); } else { tvResult.setText("连接已断开"); return; } } else { Log.i(TAG, "暂无消息"); } } }); } catch (IOException e) { e.printStackTrace(); } } } }