使用Socket进行通信
1、服务端
public class SimpleServer { public static void main(String[] args) throws IOException { // 创建一个ServerSocket,用于监听客户端Socket的连接请求 ServerSocket ss = new ServerSocket(30000); // ① // 采用循环不断接受来自客户端的请求 while (true) { // 每当接受到客户端Socket的请求,服务器端也对应产生一个Socket Socket s = ss.accept(); OutputStream os = s.getOutputStream(); String dateStr = new Date().toLocaleString(); String str = "您好,您收到了服务器的新年祝福!现在时间是:" + dateStr; System.out.println(str); os.write(str.getBytes("utf-8")); // 关闭输出流,关闭Socket os.close(); s.close(); } } }
2、客户端
public class SimpleClient extends Activity { EditText show; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); show = (EditText) findViewById(R.id.show); new Thread() { @Override public void run() { try { // 建立连接到远程服务器的Socket Socket socket = new Socket("192.168.0.100", 30000); // ① // 将Socket对应的输入流包装成BufferedReader BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); // 进行普通IO操作 String line = br.readLine(); show.setText("来自服务器的数据:" + line); // 关闭输入流、socket br.close(); socket.close(); } catch (IOException e) { e.printStackTrace(); } } }.start(); } }