当前位置:网志问答 > 股票 > 请问下:要写javaQQ程序的思路是怎么样的?那步骤又是怎么样的?麻烦大家帮我想下,越仔细越好,谢谢大家!
已有回答

请问下:要写javaQQ程序的思路是怎么样的?那步骤又是怎么样的?麻烦大家帮我想下,越仔细越好,谢谢大家!

网志问答在浏览215次收到腾讯网的热心用户jyyw0519关于莱昂纳多请问下:要写javaQQ程序的思路是怎么样的?那步骤又是怎么样的?麻烦大家帮我想下,越仔细越好,谢谢大家!的提问,关于这些疑难问题,进行了深入的分析。得到了网志问答众多网友的支持,得到了如下解决方案,摘录了部分优质回答,如对此有任何好的意见,欢迎大家进行探讨共同解决!

详细问题描述及疑问:期待您的答案,感谢你,我会记得你对我的好的 !

本页链接:http://www.oxrm.com/question/1369044744061302

AD728-90
满意答案

第1个优秀答案:

jav微a写类似于QQ哪样的即时聊天工具并不难,当然这里只说聊天功能,不包括QQ的其他应用。需要涉及到的知识有:线程,swing,socket,jdbc。就这4点来说,其实分的还比较开,swing做界面,socket和线程做通讯,彼此影响不会很大。难的在整体的架构和设计问答。如果无法考虑到一个好的设计的话,建议你把这些功能全部分开做好。比如先做好界面程序,在做一个控制只探什陆度妒训立陆金台的聊天程序,然后写一个控制台的数据库访问程序联所小。因为就java而言,客户端的swing和socket还有JD响准始士香依BC完全可以看出是3个不相干的框架,你可以在swing做好界面后及西呢营盟抗剧师,再加入socket。而jdbc数据库的访问则在server端。如果可触德深油变略以,你的控制台聊天程序的客户端尽量不要去处理数据。比如说,客户端点登录按钮,不应该是客户端去查询甲局究探觉研哥团病另关数据库,而是客户端把用户名,线单这例独增件陆息密码发送给服务端,服务端去查询,反馈给客户端数据。这里我理一个大致的思路出来,希望对你有帮助:a).程序初始化服务端创建一个ServerSockettcp;创建一个DatagramSo战稳cketupd来接受客户端消息。客户端创建一个sockettcp连接至服务端;服务端和客户端都开启一个tcp的读取消息线程。不断读取消息(阻塞式)服务端开启udp消息读取线程b).登录界面:用户输入用户名,密码后,点击登录按钮:客户端验证用户名和密码的字符是否合法,调用voidlogin(userName,pwd);该方法通过tcp将用户名和密码发送到服务端,服呢相地轴布培较务端接收到用户名和密码,(验证用户名和密码的合法)到数据库查询,返回一个User对象,将User发送给客户端(这里可以用序列化发送,也可以直接用字符质材客背钢串发送)。客户端接收到User后,判断User是否为null,如果null弹出提示框,密码错误,如果User有值听核罗过植兰七弹出登录成功注意:原最login方法通常为void,哥交初层市松液席论因为login无法在发送登录请求后马上得到服务端的回应,所以,是否登录成功,应该在tcp的读取消息线程里面判断。c)登吗游兵异附受录成功后,进入主界面客户端登录成功后,应该把服务端返回的User传递给主界面,将主界面展示处理啊,比如newMainFrame(user).show();//将主界面展示出来。主界面根据User来动态创建控件,将User对应的好友信息都加入到好友列表。(这个加入好友列表的控件可以做成自定义控件,直接绑User)。最后创建好一个DatagramSocketudp来发送文本。开启udp消息的读取线程服务端,应该保留登录成功后客户端的ip和udp端口(SocketAddress),用map保存起来例如:Map<int(UserId),SocketAddress>这样可以通过User的Id找到user的SocketAddress。d)双击好友头像,弹出聊天界面双击好友头像后,弹出条件界面,将好友信息,和自己的信息传递给聊天界面,聊天界面上点击发送消息后,用Main界面的udp发送好友的ID,自己的ID,聊天内容(这里可以发送到服务端,服务端处理文本消息后转发给好友,也可以直接发送给好友的udp,建议服务器转发)。服务端接受到消息和ID后,通过ID到map中找到地址,将消息发送给该地址上的Usere)好友发来消息如果udp接受到消息,upd的消息读取线程然控件开始闪烁,也就是不断的显示和隐藏。如果这个好友的窗体是开启状态就不用闪烁,这几展示内容。f)关闭程序:断开所有连接。


希望以上的回答,能够帮助你。更多关于请问下:要写javaQQ程序的思路是怎么样的?那步骤又是怎么样的?麻烦大家帮我想下,越仔细越好,谢谢大家!的知识及相关经验请访问经验知识https://www.5058.cn/,能够帮助你解决更多的问题,学习更多的经验。
AD160-600