好吧,自己挖的坑自己得埋上。继续~
图2-4 好友列表
接下来是添加好友,添加好友分为模糊查找和高级查找,模糊查找仅可查找到QQ ,昵称,性别,头像等(如图2-5),而高级查找可以在模糊查找的基础上查找到生日和个性签名(如图2-6),两者查找的区别是,模糊查找需输入的是昵称,而且是部分匹配即可查找;而高级查找则是查找QQ ,需要准确输入被查找者的QQ 。然后好友的数据库我设计的比较傻逼,因为我程序读的时候只读了包含本次登录QQ 的数据的第一列,所以我在添加好友时将写入数据库两行信息,一个是本QQ 在数据库的第一列,好友QQ 在数据库的第二列;还一个是将两者倒过来。说的比较抽象。。。将就着看吧,实在不懂可以私我,相信有办法看懂的(略略略#摊手)。为了方便多账 用户不将多个QQ 混淆,而加错好友,所以特意在界面的最下方显示了当前使用用户是谁(呵呵, 说的跟真的用的到似得#白眼)。
图2-5 模糊查找
图2-6 高级查找
聊天是程序的核心,把这个放在最后和服务器一起写,看的也方便点。聊天界面是通过好友列表双击好友头像进入的(如图2-7),服务器是独立与客户端的一个程序,服务器如图2-8所示。
服务器开放在本机的所有IP地址上(像我电脑上是多张 卡的,程序会自动在两个IP上都打开服务器),我设置的服务器默认端口为6600,监听初始化时挂起数为10,设置最大传输字节数为65535,这些都是Socket基础的,恩~程序这里没有用什么127.0.0.1或者是Localhost之类的,所以是真正意义上能实现局域 通信的软件。当用户连接上服务器后,服务器上会有记录,记录用户的IP和端口 。突然感觉又没什么说的了,都是基础的Socket技术,具体流程就是服务器运行Socket,运行线程,为客户端建立Socket连接,然后将SOCKET接口和IP端口绑定,监听指定的Ip和端口,将接受客户端连接的方法委托给线程,接着让线程开始运行。再写一个接受客户端连接的方法RecieveAccept(),Accept 以同步方式从侦听套接字的连接请求队列中提取第一个挂起的连接请求,然后创建并返回新的 Socket。在阻止模式中,Accept 将一直处于阻止状态,直到传入的连接尝试排入队列。连接被接受后,原来的 Socket 继续将传入的连接请求排入队列,直到主动关闭它。
服务器说完了,说说客户端的,先实例化一个tcp流套接字,然后设置信息接受发送的字节数为65535,设置服务器的IP地址(这个真的好烦,因为学校的 络原因,经常会变动我的局域 IP地址,导致过段时间运行程序,IP地址都得进程序修改,不想每次修改源代码,你也可以把IP地址写到一个XML文件里,然后每次从这个文件修改,程序也从这个XML文件里读取IP地址,当然了,真正的服务器是不会有这个问题的),同样的因为服务器的端口 设置为6600,所以这里的端口 也是6600,其他的。。。 好像都没什么好说的,就是假如服务器没连接上会有弹出窗提示,假如在中途与服务器断开连接,信息无法发送同样会有弹出窗提示。具体客户端的测试呢~如图2-9所示。
图2-7 聊天界面
图2-9 聊天的测试
呼呼呼~差不多也就是这样了,简单的程序,简单的介绍(#捂脸),程序呢,差不多写完有大半年了,这次写博客,感觉收获还是不少的,对程序的重新阅读,能发现之前写程序的很多的不足。虽然程序的BUG不少,博客写的也不是很好,但毕竟都是第一个,再接再厉吧。哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈~~~~~~嗯嗯~就这样结束第一篇博客吧。
完
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!