使用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();
}
}