《局域网间的不同机器qq通信.docx》由会员分享,可在线阅读,更多相关《局域网间的不同机器qq通信.docx(6页珍藏版)》请在第一文库网上搜索。
1、计算机网络课程设计报告班级:计科122姓名:郑强清(20121514203)陈龙飞(20121514202)陈江飞(20121514213)指导教师:金松林日期:2015年4月2日题目一、问题描述(把你所选的题目及要求说一下)局域网之间的QQ通信(UDP)要求:实现局域网间的两台电脑的通信了解基于socket的程序设计方法,增强程序编写能力,加深对计算机网络通信的理解。另外,通过课程设计培养学生严谨的科学态度,认真的工作作风、团队协作精神、自主设计和独力思考的能力。使我们学会文献检索的基本方法和综合运用文献的能力。二、概要设计(抽象数据类型定义)1,首先选择一个主机,得到此主机的IP地址,设置
2、为服务器的特定ip,即为用户时登录所发送的的ip地址,2,客户连接时,创建一个SoCkCt套接字,向服务器发送一个消息,进行验证登录3,创建一个服务器SerVerSOCket对象,监听一个端口,接受用户发来的信息,为用户创建一个线程与之通信三、详细设计(主要算法和函数间的调用关系)1,启动服务器,监听本机端口:2,ServerSocketserverS=newServerSocket(6789);3,4,接受成功,就创建一个客户端套接字ScoketSocketc1inetS=servers.accept();5,验证用户登录,如果成功,就为用户创建一个线程*码登录I退出xf(u.getPass
3、wd().equa1s(123)/返回一个成功登录的信息包m.SetMesType(,1,);oos.writebject(m);/这里开一个线程,让该线程与客户端保持通讯。SerConC1ientThreadsect=newSerConC1ientThread(C1inetS);将用户id和为用户创建的ManageC1ienthread.addCIientThread(u.getUser1d(),sect);/启动线程与该客户端通讯的线程,并启动线程Osect.start();)将线程加入到HaShMaP中利用用户工D名找到服务器所监听的线程名pub1icstaticHaShMaPhm=ne
4、wHaShMaPString,SerConC1ientThread();/向皿中添加一个用户端的通讯线程;pub1icstaticvoidaddC1ientThread(Stringuid,SerConC1ientThreadct)hm.put(Uid,Ct);)b客户端建立SoCket套接字Sockets=newSocket(,192.168.0.37,6789);ObjectOutputstreamoos=newObjectOutputStream(s.getutputstream();/发送用户对象到服务器oos.writebject(o);ObjectInputStreamois=ne
5、wObjectInputStream(s.get1nputStream();Messagems=(Message)ois.readbject();2,3,显示好友列表,双击好友列表的好友,打开Chat聊天窗口,在文本框中输入信息,点击发送4,5,封装信息将发送者,接受者,信息的内容,信息的时间封装到一个message消息类中,通过监听用户所在的线程发送消息6,从服务器获得消息,发送到客户的Chat聊天界面ObjectInputStreamois=newObjectInputStream(s.get1nputStream();Messagem=(Message)ois.readbject();/
6、把从服务器获得信息,显示到聊天界面:Chatingchating=ManageQqChat.getQqChat(m.getGetter()+”+m.getSender();System.out.printin(chating);chating.ShowMessage(m);流程图服务器四、调试分析(调式过程中出现的问题及如何改正)两个客户登陆进行调试两个客户进行聊天存在的不足:因为本组能力有限,加上时间紧迫,所以设计出来的本系统客户端与服务器端没有分开,这些都有待我们在以后的工作学习中进一步改进。五、心得体会(组内成员的分工及实习期间的体会)首先先感谢老师给我们这次机会来锻炼自己,让我们感受到学来的知识不是用来完成试卷的。其次我们在完成课程设计的过程中体会到团队合作的乐趣,我们学会积极的同团队成员交流,取长补短,共同进步。最后,在这次实习中虽然我们已经对程序进行不断地修改,但是很多地方还存在严重的不足,由于时间限制我们只完成到了这个程度,今后的学习我们将对其进行进一步的修改。六、用户手册(系统的使用方法介绍)1 .启动服务器程序,运行MySerVerFrame.java,点击打开服务器2 .打开客户端程序,输入用户名(20)和密码(123)3 .双击需要聊天的用户图像,点击发送按钮,发送信息