android基于socket的局域网内服务器与客户端加密通信( 七 )


private void connection() {
Intent intent = new Intent(this, LocalService.class);
bindService(intent, sc, BIND_AUTO_CREATE);
}
@Override
protected int getLayoutResId() {
return R.layout.function_socket_server;
}
/**
* 获取连接到本机热点上的手机ip
*/
private ArrayList<String> getConnectedIP() {
ArrayList<String> connectedIP = new ArrayList<>();
try {
//通过读取配置文件实现
BufferedReader br = new BufferedReader(new FileReader(
"/proc/net/arp"));
String line;
while ((line = br.readLine()) != null) {
String[] splitted = line.split(" +");
if (splitted.length >= 4) {
String ip = splitted[0];
connectedIP.add(ip);
}
}
} catch (Exception e) {
e.printStackTrace();
}
return connectedIP;
}
@OnClick({R.id.btn_startListener, R.id.btn_stopListener, R.id.btn_getUser})
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_startListener://启动监听
connection();
break;
case R.id.btn_stopListener://停止监听
if (sc != null)
unbindService(sc);
break;
case R.id.btn_getUser://刷新连接到此设备的IP并清空之前接收到的数据
ArrayList<String> connectedIP = getConnectedIP();
StringBuilder resultList = new StringBuilder();
for (String ip : connectedIP) {
resultList.append(ip);
resultList.append("\n");
}
ToastUtil.showToast(this, "连接到手机上的Ip是:" + resultList.toString());
tv_decryptContent.setText("");
tv_receivedContent.setText("");
break;
}
}
public void onDestroy() {

推荐阅读