本文原创,若要转载请注明出处:http://blog.youkuaiyun.com/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.youkuaiyun.com/detail/adroitly/7293053