第二个功能首先想到的是socketserver,但是不知道在wifi环境下一台android手机当服务器,另外一台当客户端访问

第二个功能首先想到的是socketserver,但是不知道在wifi环境下一台android手机当服务器,另外一台当客户端访问(转载)
http://topic.csdn.net/u/20120305/22/2047ad41-6065-49fd-81d3-9e766c664ecb.html?61978

你这说的几点技术上都和java没什么差异,查看wifi是否连接,手机ip地址
Java code
      
      
      
      
public String getIpAddress(){
String ipAddress
= "" ;
try {
ipAddress
= wifiIpAddress();
if (ipAddress != null && ipAddress.trim().length() > 0 ){
}
else {
ipAddress
= this .GPRSIpAddress();
}
}
catch (Exception ex){

}
return ipAddress; // 有IP返回就联网
}
private String wifiIpAddress(){
String ip
= "" ;
// 获取wifi服务
WifiManager wifiManager = (WifiManager)(context).getSystemService(Context.WIFI_SERVICE);
// 判断wifi是否开启
if (wifiManager.isWifiEnabled()) {
// wifiManager.setWifiEnabled(true);
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
ip
= intToIp(ipAddress);
}
return ip;
}
private String intToIp( int i) {
return (i & 0xFF ) + " . " +
((i
>> 8 ) & 0xFF ) + " . " +
((i
>> 16 ) & 0xFF ) + " . " +
( i
>> 24 & 0xFF ) ;
}

private String GPRSIpAddress(){
try {
for (Enumeration < NetworkInterface > en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();){
NetworkInterface intf
= en.nextElement();
for (Enumeration < InetAddress > enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();){
InetAddress inetAddress
= enumIpAddr.nextElement();
if ( ! inetAddress.isLoopbackAddress()){
return inetAddress.getHostAddress().toString();
}
}
}
}
catch (SocketException ex){
Log.d(
" GPRSIpAddress IpAddress " , ex.toString());
}
return "" ;
}





另外配上
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />  
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
这三个权限

别把wifi和手机的gprs网络看得这么神秘,说白了还是网络。
只要有一台公网IP地址的,相互socket都没问题。
如果没有公网IP,那就只能局域网了。
加密解密无非是你文本的转化。,只要客户端和服务器端有对应的加密和解密算法就可以了

你可能感兴趣的:(第二个功能首先想到的是socketserver,但是不知道在wifi环境下一台android手机当服务器,另外一台当客户端访问)