Android系统上安全的聊天与文件传输程序

lxf001002 2012-03-05 10:38:05
现在有这样的一些需求,本人学的java,自学android开发,拿到以下的需求时,第一个功能可以调用系统api查看是否已经连接到wifi,也应该可以看到手机ip
第二个功能首先想到的是socketserver,但是不知道在wifi环境下一台android手机当服务器,另外一台当客户端访问
第三个功能看起来有点像飞秋,不知道怎么实现
第四个功能想到的是通过加密算法实现,比如3ds

希望各位大牛有想法和意见不吝指导


1、程序能检测本手机是否已经连接上WIFI网络且能方便地查看到本手机的IP地址
2、输入对方IP地址以后可以与对方进行文字消息通信
3、用户可以方便地选定欲发送给接收方的文件,接收方可以选择接收或者拒绝(接收的文件存在预先假定的目录或者允许用户选择目录)
4、本程序所发出的文字消息与文件传输内容均应是经过加密的无法直接查看原来的内容


...全文
402 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
hvk687 2012-07-15
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20120705/15/90ce6cb0-7d70-4438-8d73-f8cde3f10b71.html
参考一下,也许是一个问题
sunqimin 2012-07-14
  • 打赏
  • 举报
回复
纠结于传输文件中。。。
传输的 和接收的 不一样,,郁闷。。
lxf001002 2012-05-11
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 的回复:]

都已经实现,多客户端多线程等等, android 连 PC没问题, 3G也可以连上,, 文件发送等都没问题。。

就是 PC连 Android, 总是
hp = gethostbyaddr((char*)&unAddr, sizeof(unAddr), AF_INET); 返回空,

还有就是 ping 3G的地址 ping不通, ping wifi地址没问题
[/Quote]
我看看实现
xmu_才盛 2012-05-08
  • 打赏
  • 举报
回复
都已经实现,多客户端多线程等等, android 连 PC没问题, 3G也可以连上,, 文件发送等都没问题。。

就是 PC连 Android, 总是
hp = gethostbyaddr((char*)&unAddr, sizeof(unAddr), AF_INET); 返回空,

还有就是 ping 3G的地址 ping不通, ping wifi地址没问题
lxf001002 2012-04-25
  • 打赏
  • 举报
回复
传文件不知道怎么实现啊
追风筝的孩子 2012-04-05
  • 打赏
  • 举报
回复
。。。openfire。我折腾了半天也弄不好那个sparks的聊天客户端。。。幸好不是需求,要不得熬夜。
Marco_Lee 2012-04-05
  • 打赏
  • 举报
回复
好贴,mark一下先~
lxf001002 2012-04-05
  • 打赏
  • 举报
回复
有想法的继续发表嘛
lxf001002 2012-03-22
  • 打赏
  • 举报
回复
我在想 如果在android上作为服务端的话,开多个模拟器可以连接吗?
卖萌 2012-03-09
  • 打赏
  • 举报
回复
恩,二楼回答的不错
lxf001002 2012-03-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 kechanghe0705 的回复:]
可以的。

聊天程序可以参考一下 openfire
[/Quote]

谢谢!!
j_f0001 2012-03-07
  • 打赏
  • 举报
回复
可以的。

聊天程序可以参考一下 openfire
lxf001002 2012-03-07
  • 打赏
  • 举报
回复
还有一点就是,2台手机,一台做服务端,另外一台做客户端是可以的吧
乐山乐水2015 2012-03-06
  • 打赏
  • 举报
回复
不错,看了很受用啊
lxf001002 2012-03-06
  • 打赏
  • 举报
回复
恩 先谢谢楼上二位 希望可以看到大家更多的想法
傲慢的上校 2012-03-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 danielinbiti 的回复:]

你这说的几点技术上都和java没什么差异,查看wifi是否连接,手机ip地址
Java code
public String getIpAddress(){
String ipAddress = "";
try{
ipAddress = wifiIpAddress();
if(ipAddress!=null&am……
[/Quote]学习一下。。不错。。
zhouyangallen 2012-03-06
  • 打赏
  • 举报
回复
为什么我用wifi能通讯,用3g就通讯失败?建立连接后,一发送数据就失败!
lxf001002 2012-03-06
  • 打赏
  • 举报
回复
有木有更多的想法
追风筝的孩子 2012-03-05
  • 打赏
  • 举报
回复
嗯嗯。。没有公网ip地址,也就是没有自己的网站的话。。只能在局域网之间自个儿玩。。。文件传输。。。你可以看看ftps协议的一些思想,可以基于tcp定制自己指定的协议
danielinbiti 2012-03-05
  • 打赏
  • 举报
回复
你这说的几点技术上都和java没什么差异,查看wifi是否连接,手机ip地址
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,那就只能局域网了。
加密解密无非是你文本的转化。,只要客户端和服务器端有对应的加密和解密算法就可以了。

80,475

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧