当进行TCP或者UDP通信时,一个设备会充当服务器端,另一个充当客户端来实现信息接收与发送(听师兄介绍说tomcat是一个集成好的服务器端,具体细节还不懂,这里也不用考虑,理解透彻后再来补充)。
一般情况下我们会把手机端当做一个客户端,与服务器端进行通信,这也是大多数情况。少数情况下我们也需要把手机端当成服务器端,比如通过手机直接获取某硬件的数据,而硬件需要指定IP地址,才能给服务器发送数据。
当连接网络后就会有一个IP地址,这个IP地址经常改变(不知能否像电脑端一样拥有一个固定的IP地址,这里的理解还不是很清晰,需要进一步学习后来补充),怎样自动获取这个IP地址呢?(通过查看手机详情也是可以的,太麻烦)。看下面代码:
public void getIp(View v) {
//获取wifi服务
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
//判断wifi是否开启
if (!wifiManager.isWifiEnabled()) {
wifiManager.setWifiEnabled(true);
}
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = intToIp(ipAddress);
get_ip_show.setText(ip);
//get_ip_show要自己定义下
}
//将IP地址改为标准的形式
private String intToIp(int i) {
return (i & 0xFF ) + "." +
((i >> 8 ) & 0xFF) + "." +
((i >> 16 ) & 0xFF) + "." +
( i >> 24 & 0xFF) ;
}
这是这段代码在模拟器上得到的结果: