项目名称:JAVA通信项目——QQ

成员:邢正,郑振兰

项目需求:QQ每个人都用过,它的意义就不再讲了。之所以选择做QQ事因为它有挑战性,涉及到通信、传输、swing等各种知识。(好吧我不装逼了,说的直白点,代码量大,如果写五子棋贪吃蛇之类的绝对写不到500行)

首先整个项目分为两部分:客户端和服务器。客户端要完成的功能就是界面(主界面,好友列表,聊天界面)以及登录、聊天功能。服务器作为后台,负责通信连接。做项目时逻辑一定要清楚,类与类包与包之间的逻辑关系以及分层一定要明白

代码截图:

因为没用数据库也没有用集合框架来记录用户信息,所以在登录时直接在Myserver里进行判断,账号可以随便填,但密码必须是123456,不是则弹出提示框,是则跳转到好友列表。聊天功能没能实现从服务器转发到客户端,但是服务器已经可以抓到从客户端输入的信息。这里出了个错,我们测试服务器抓信息时很正常,但是关闭界面后会报错java.net.SocketException: Connection reset,应该是哪里的socket没有正常关闭,但是不知道怎么解决了,就留下了这个bug。一开始还没在意,继续往后写,当让服务器像客户端转发消息时就出错了。

可能是我太笨,实在是找不到一个好的角度自拍既可以拍到人有拍到电脑于是就这样拍了一张(虽然怎么看都像是秀恩爱而不像是在敲代码)

约定的规范:凡是涉及到界面设计的,需要加监听的地方,起名字都必须直观方便;客户端和服务器端必须有一个名字相同的包如com.commen,用来存放User,Message等类;端口号为9999;所有类的命名需要统一协商以便调用以及类里的方法或成员变量;规定好消息包,如1代表信息正确可以登录,2表示信息错误,还有其他消息包;每个功能前加注释。

记录时间:选题10min

分工、编写程序、调试总共用了四天(包括查书看视频)

心得体会:动嘴容易动手难,感觉挺好做的东西真正做起来会遇到很多问题,通信、流这里的知识不牢固,需要看着书才能敲出来,出了差错解决起来也不简单,项目涉及到集合框架知识,这里需要再系统学一学。不管以后做什么项目,一定要动手做,光看视频是很难掌握的,就算对着视频敲下来,也会发生一些错误,我这里出现最多的就是jdk版本问题……当然还有其他小问题,只好向度娘求助。

java qq通信_结对博客(Java通信项目QQ)相关推荐

  1. python创建新工程_个人博客二|创建项目

    Django是一种基于Python的开源Web框架,采用了MVC的框架模式. 工作区    D:Userswork 1.创建虚拟环境 mkvirtualenv  stormsha 2.安装django ...

  2. java se5和8_javaSE_8系列博客——Java语言的特性(三)--类和对象(5)--定义方法...

    以下是一个典型的定义一个方法的示例: public double calculateAnswer(double wingSpan, int numberOfEngines, double length ...

  3. Java网络聊天室---个人博客

    Java网络聊天室 ---个人博客 一.项目简介 功能描述: 使用图形用户界面和socket通信,能实现一个聊天室中多人聊天,可以两人私聊,可以发送文件. 实现类似QQ用户注册.登录.聊天等功能. 参 ...

  4. 大牛_博客Java方面链接总结

    大牛_博客Java方面链接总结找找差距 源码分析 The IoC container – Spring                     http://thinkinginjavablog.si ...

  5. JAVA相关的深度技术博客链接

    JAVA相关的深度技术博客链接 深入聊聊Java 垃圾回收机制[附原理图及调优方法] 说说Java 多线程之悲观锁与乐观锁 深入JAVA 的JVM核心原理解决线上各种故障[附案例] 谈谈你对volat ...

  6. java基于ssm的个人博客系统个人博客网站个人博客项目源码

    简介 Java ssm开发的个人博客系统,可以发布博客,照片,站长留言. 演示视频 https://www.bilibili.com/video/BV1sf4y1y7Ne/?share_source= ...

  7. JAVA计算机毕业设计抑郁症患者博客交流平台Mybatis+源码+数据库+lw文档+系统+调试部署

    JAVA计算机毕业设计抑郁症患者博客交流平台Mybatis+源码+数据库+lw文档+系统+调试部署 JAVA计算机毕业设计抑郁症患者博客交流平台Mybatis+源码+数据库+lw文档+系统+调试部署 ...

  8. JAVA计算机毕业设计大学生个人博客网站Mybatis+系统+数据库+调试部署

    JAVA计算机毕业设计大学生个人博客网站Mybatis+系统+数据库+调试部署 JAVA计算机毕业设计大学生个人博客网站Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开 ...

  9. java毕业设计基于网络平台个人博客系统Mybatis+系统+数据库+调试部署

    java毕业设计基于网络平台个人博客系统Mybatis+系统+数据库+调试部署 java毕业设计基于网络平台个人博客系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开 ...

最新文章

  1. FPGA的历史、现状和未来
  2. Centos7通过yum安装最新MySQL
  3. (转)SpringMVC学习(七)——Controller类的方法返回值
  4. leetcode刷题:除自身以外数组的乘积
  5. MyBatis学习笔记(一):MAVEN的下载,安装与环境配置和在IDEA中配置maven
  6. 设计模式(十一):享元模式
  7. 第六届中国电子信息博览会今日正式开幕,智享新时代!
  8. PHP脚本memcache类的源码
  9. 大地测量学基础(复习)第三部分
  10. PTA 7-7 新年倒计时
  11. excel函数去重_Excel去除重复值方法汇总
  12. 键盘计算机编程是什么意思,可编程键盘是什么
  13. 论一个女程序员的自我修养
  14. html a标签鼠标聚焦,html怎么实现鼠标悬停提示A标签内容
  15. 菜狗为了打败菜猫,学了一套如来十三掌
  16. vue与ios和Android联调方法
  17. mysql limt取指定数据条数 top取指定数据条数
  18. 【上海 >>无锡】自驾两日游
  19. Awakening Your Senses【唤醒你的感觉官能】
  20. 尔雅戏剧鉴赏 考试答案

热门文章

  1. 第七十六期:3000台服务器不宕机,微博广告系统全景运维大法
  2. 玩转oracle 11g(3):配置监听
  3. 实例58:python
  4. 特征工程之数据预处理(上)
  5. python变量标识符_简谈-Python的注释、变量类型、标识符及关键字
  6. Apache实验-目录别名
  7. npm、webpack、vue-cli 快速上手版
  8. 虚拟机上的Linux学习
  9. java如何对List集合中的元素进行排序(请收藏)
  10. 【iCore1S 双核心板_FPGA】例程十六:基于SPI的ARM与FPGA通信实验