socket即时通信

来源:互联网 发布:付费系统源码 编辑:程序博客网 时间:2024/05/12 16:45

本文原创,若要转载请注明出处:http://blog.csdn.net/adroitly/article/details/24997249


结束了上个月的游戏,瞬间明白这个道理:写这些程序不要太过于着急,你要知道你想干什么,有什么用,然后形成文档,知道流程,这样你就可以写了!

就好比如socket,功能很简单,就是电脑做server,手机端和电脑端都可以做client,然后创建一个群聊!

这个其实不难,首先你要知道server用一个serversocket来new一个对象,然后端口号不是1-1023就好了!我的是8080,;

然后就是socket对象获取serversocket。

群聊要用一个数组把客户端的数量和属性保存起来,这样发送消息才可以逐个发送!

新建个DataInputStream和DataOutputStream,把Input的数据拿出来,我用readUTF();相应的你发送数据也要用UTF的类型!

把取出来的数据再遍历整个数组,把你取出来的数据writeUTF(str),中途有走掉的要及时remove掉,不然以后会慢的!

这样你的服务器就完成了!

如果你要写数据库也行,你自己加个数据库写吧!

客户端更加简单

首先new一个socket对象,把服务器所在的IP,开放的端口号填上去,我的端口号是8080。

然后new一个DataInputStream和DataOutStream,用来存放服务器发送过来的数据,和传输数据去服务器!


这里需要提醒下,获取数据要写个线程去获取!这样你才可以及时获取到,写这个电脑端的client没问题,到了手机端的client的时候我用TextView来显示数据,然后setText()方法不行,会报错,并且它不能刷新,需要手动去刷新,我在这里坑了好久,最后只能写个线程去刷新,线程1秒刷新一次太慢,0秒刷新又太快,会死掉,只能用100MS,这样会不定期的死掉,起码比其他的要好啦!。

服务端你也要写个线程去获取数据,一旦有数据获取了,马上发出去,不用等!

最终就这样完成了,顺便提醒下,电脑端和手机端的IP一样的!说明什么?说明你的手机要用电脑发出来的WIFI这样你才可以使用!不然连接不了!


代码就在这里,服务器,客户端(电脑,手机)均已实现!样子丑陋了点而已!

http://download.csdn.net/detail/adroitly/7293053

0 0
原创粉丝点击