当前位置:  编程技术>移动开发
本页文章导读:
    ▪socket联接        socket连接 最近找了找方向,随便翻了翻书,先写一些和主线无关的吧,socket连接的使用。首先,如何连接远端的网络服务器。先从最基本的说起:Socket s = new Socket(...); as.setSoTimaOut(1000);.........
    ▪ dialog中展示dialog        dialog中显示dialog 有时候需要在dialog中调用显示另外一个dialog的方法,直接调用的话会抛出空指针异常,这里,可以直接调用   Activity中的showDialog(int id)  方法,实现异步创建. 记住,showDialog(.........
    ▪ 米道之中国梦想       米聊之中国梦想 米聊,一款手机客户端聊天交友软件平台,在2011年中登上了历史舞台。时至今日,才想起,已经用了这么久,应该对它做一个全面深入的分析了,以飨读者。首先,这个.........

[1]socket联接
    来源: 互联网  发布时间: 2014-02-18
socket连接
最近找了找方向,随便翻了翻书,先写一些和主线无关的吧,socket连接的使用。
首先,如何连接远端的网络服务器。
先从最基本的说起:
Socket s = new Socket(...);
as.setSoTimaOut(1000);
try{
    InputStream in = s.getInputStream();
} catch(InterruptedIOException exception) {
    react to timeout
}

此代码有一个问题,如果使用new socket(String host, int port)这个构造器的话,会一直无限期阻塞下去,直到建立连接成功。所以推荐做法为:
Socket s = new Socket();
s.connect(new InetSocketAddress(host, port), timeout);

其实,java封装了所有连接服务器的细节,所以,我们使用起来会非常的方便。
网络地址一般的获得方式为
InetAddress address = InetAddress.getByName("www.baidu.com");
byte[] addressBytes = address.getAddress();
//如果很多ip来实现负载均衡,则会有很多主机地址
byte[] address = InetAddress.getAllByNames(hst);

讲完客户端,服务端也要讲了,首先还是最基本的:
ServerSocket s = new ServerSocket(8199);
//下面的命令一下,你的程序就被hold住了哦
Socket incoming = s.accept();
//直到程序有了输入
try{
    InputStream inStream = incoming.getInputStream();
    OutputStream outStream = incoming.getOutputStream();
    Scanner in = new Scanner(inStream);
    PrintWriter out = new PrintWriter(outStream, true);
    
    out.print;n("Hello! Enter BYE to exit.");

    boolean done = false;
    while(!done && in.hasNextLine()){
        String line = in.nextLine();
        out.println("Echo" + line);
        if (line.trim().equals("BYTE")) done = true;
    }
} finally {
    incoming.close();
}
catch(IOException e) {
    xxxx
}
}

一般情况,服务器不可能一对一的应对访问,所以需要线程加以支撑:
替换相应的s.accept()
while(true){
    Socket incoming = s.accept();
    Runnable r = new ThreadedEchoHandler(incoming);
    Thread t = new Thread(r);
    t.start();
    i++;
}

这样服务器端就可以处理多个客户端的请求了。

下来,还有一个问题,如果客户端想在建立连接的时候中断请求,应该怎么办呢?有一法:
可以使用java.nio包提供的一个特性:SocketChannel类。
SocketChannel channel = SocketChannel.open(new InetSocketAddress(host, port));
Scanner in = new Scanner(channel);
//Channels的静态方法
OutputStream outputStream = Channels.newOutputStream(channel);

这样,如果使用线程的中断interrupt(),那么线程将不会陷入阻塞,而是以异常的方式结束。具体客户端的访问线程是否可以从访问处直接到异常处,各位自己写写程序实验吧。睡觉!呵呵。

    
[2] dialog中展示dialog
    来源: 互联网  发布时间: 2014-02-18
dialog中显示dialog

有时候需要在dialog中调用显示另外一个dialog的方法,直接调用的话会抛出空指针异常,这里,可以直接调用

  Activity中的showDialog(int id)  方法,实现异步创建.

记住,showDialog(int id)是带有缓存的


    
[3] 米道之中国梦想
    来源: 互联网  发布时间: 2014-02-18
米聊之中国梦想
米聊,一款手机客户端聊天交友软件平台,在2011年中登上了历史舞台。时至今日,才想起,已经用了这么久,应该对它做一个全面深入的分析了,以飨读者。
首先,这个东东由于具有窥探用户隐私的功能,所以今后如何,不好随便下结论。安装了米聊,很快就发现手机通讯录会被米聊加以分析,这对米聊来说,虽然功能做的很强大,实属软肋,日后用户恐怕不会买账,如果控告米聊窥探了手机隐私,实在是一大麻烦。笔者在塞班,安卓两种手机系统安装了米聊之后,很快就发现手机通讯录里,开通了米聊的同事好友等,都被它的小助手推送了。米聊的其他推送功能也很强大,不断刷新数据库,告知用户,这个人和你有多少共同好友,还可以看到此用户的各种信息,包括米聊号,公司,教育背景等,让你不加好友都不好意思。几天内,大部分好友就这样产生了。在这部分,几乎都是工作,学习上的同好。可以说,这部分是以工作事业,亲戚朋友为重的人际关系交流平台。
而查找附近好友小助手,当你位于某个经纬度,就可以打开这个功能,查看附近也在使用米聊的用户,显然,这个功能是以娱乐为主,在信息中包含用户的最近上线时间,是一个很好的用户体验。查找感兴趣的附近陌生人,我想大部分人都会选择异性吧,聊到一定热度,互发自拍照,接下来,甚至可能去开房约炮。至于关联微博神马的,在这里充其量也就是个互相了解的补充功能。当两个人聊不起来时,会转战到微博,互相了解后,又可能会回归米聊。米聊并没有强烈暗示用户上传个人真实照片,填写真实姓名等信息,目的恐怕就是对陌生异性交友这一功能进行弱化。
由此可见米聊的定位不在娱乐,而在于其人际关系的维系,更重要的,是让用户可以强烈体会到人际关系拓展的感觉。米聊的好友,按照软件的不断推送,基本可以强行分为以上两大类,工作学习亲戚等手机通讯录上的人际关系及拓展,和附近随机查找到的陌生好友。

米聊的广播功能,此功能是米聊的杀手锏之一,后台运行能力相当强大,杀掉手机进程之后很快就会自动重启,每次手机解锁,几乎就能看到那个绿色的MI小气泡在闪动,刷新一看,都是好友发的一些类似新鲜事,状态之类的广播,和正规sns网站也有的一拼。
而米聊的圈子热点功能,也是类似的进行后台运行并推送。按笔者的估计,雷军应该是准备了两手,广播和圈子热点并重,但最后圈子热点的效能却发挥有限,创建,加入热点的人是很多,但是发言的人却极少。往往是好几天,才不经意的由后台推送通知。热点内容更新相对较慢。
其他的种类繁多的功能,米聊都集中在米世界中,这应该都是雷军留下的后手,从这一点来说,雷军果然是商界不世奇才啊。万一先期的若干功能不能打响米聊,还有这么多的求缘猫,愿望树,星座运势,生日墙,缘分测试,校园大PK,GIF秀,头像控等等后手留作备用。不怕米聊不火。其实写到这里,笔者个人认为,雷军在发现今后将是电脑转向手机的时代之后,是想做一个最终能够取代,战胜qq的东东。

然而雷军最具创造性的一点,就是以软带硬,这是一种前所未有的全新的商业模式,以前几乎所有的公司都是单一模式,即要么只做软件,要么只做硬件。SUN虽然二者兼有,却始终命运多舛,最终落得个被收购的下场。IBM是一朵奇葩,这里略过不表。最多也就是微软这样的公司,和Intel等硬件厂商联合,靠升级软件来带动用户不断更新换代计算机硬件。
雷军的天才模式,则是自主研发一款软件,同时自己制造手机。只有用自己做的手机搭载这款软件,才会有最好的用户体验,来促使用户购买手机硬件,达到公司创立初始,就可以开始盈利,这可以说是一种前无古人的创新模式。早前不少公司想抄袭这一模式,但是很难成功复制,很多都不幸胎死腹中了。

米聊唯一没有预料到的就是,用户使用这类软件,最大的心理还是猎奇,开房约炮,至于工作学习神马的,有其他平台可以完成,都会放在其次。现在手机交友软件陌陌一枝独秀,恰恰证明了这点。陌陌创始人,网易前网站部总编辑唐岩说,陌陌的定位很简单,就是交友约炮软件。往往简约就是美,就是一枝独秀。米聊从一开始就搞做大做全,其实是很危险的一步棋,但是雷军的个人魅力使然,米聊也能够遍地开花,大获全胜。在这个神奇的国度,成功的人士都是相似的;失败的人士则是各有各的原因。
最后,留给读者一个问题,记得米聊最初的版本,具有显示当前共有多少好友的功能,不知为什么从去年底开始的发行版中,取消了此功能,此举意欲为何?

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android显式启动与隐式启动Activity的区别介绍 iis7站长之家
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3