首先,我们要实现一个QQ的基本功能,就要有以下模块:聊天,传文件,远程控制,视视频音频聊天;
所以我们就要分步来实现它们。
1.实现一个简单的服务器;(运用系统自带的telnet客户端)
2.实现多线程的服务器;
3.实现一个能够群聊的服务器;(运用系统自带的telnet客户端)
4.写一个简单的客户端;
5.制定xmpp风格的通信协议,并且将协议运用于通信;
//以上是聊天模块的实现步骤
6.制定字节流协议,实现文件的传输;(如果要传送大文件,其功能还要深入实现:将文件进行切割传输)
//以上是文件传输模块的实现
7.远程控制;(其实远程控制也是字节流协议的运用:服务器不断截图传图片,实现视频;客户端不断通过鼠标和键盘产生命令并以字节流方式传输)
//以上是远程控制模块的实现方法
8.音视频聊天的实现
当然,在最后必须加上炫彩夺目的界面,这看上去似乎就是个QQ了,但是里面的细节还有许多:注册(当然这里就与数据库有关系了),添加好友,踢人,震动。。。。。。
下面就来稍微详细地做一些代码实现的主要步骤或是要注意的地方。
我们一般来说,都是先写服务器端,我们首先就应该建立一个服务器的class,然后在自己写的public void setupServer(int port){...}方法中创建一个服务器:java.net.ServerSocket ser= new java.net.ServerSocket(port);再创建一个客户端对象并让服务器进入等待:java.net.Socket so = ser.accept(); 之后的事情就是等有客户端连入就取得java.io.InputStream与java.io.OutputStream对象从而建立起通信的桥梁或管道,这都是写服务器端的一个基本架构;不过在运用字节流协议时还应将流“包装”为数据流即:DataInputStream和DataOutputStream;另外要值得注意的是class的功能一定要单一,不然会显得杂乱无章;还有,在具体的实现当中特别注意死循环的问题,这里暂不讨论;同样在哪里用throws 在哪里用try...catch...也是应该要考虑的。对于群聊,原理也比较简单,一个客户端发送一条消息到服务器,再通过服务器将消息依次转发,通过一个队列就可以实现。我认为最麻烦的一步会出现在运用xmpp协议上而不是在制定协议上,不过在制定协议时我认为应该“留退路”,即让协议有可以扩展的能力,你也说不清以后还会实现一些什么新功能。运用xmpp风格协议时烦杂在解析,还要注意如注册的流程,好友上线的流程,这都是需要细致分析的,如果这里class功能不单一的话,会给人造成一些不小的麻烦,会让你头晕脑胀。。。。。。要在这里特别强调的是可能会有人将服务器程序与客户端程序写到同一个包下,这是大错特错的,我们可以试想看,这还叫通信吗?。。。。。
在下一篇中,将列举一些常见的错误。。。。。。
分享到:
相关推荐
本资源提供了北邮秋季光纤通信技术光纤通信技术阶段作业二样本的知识点总结,涵盖了光纤通信技术的基本概念、光纤结构、光纤通信技术的优点和缺点等内容,为学习和研究光纤通信技术提供了有价值的参考资料。
通信认识实习是大学阶段一个至关重要的实践环节,旨在让学生在专业学习前对通信行业有初步的了解和体验。2014年中南大学通信工程专业的学生在广州讯联通信工程公司湖南分公司进行了为期一周的实习,通过实地参观、...
1. **Profibus DP通信**:S7-1200可以通过添加Profibus DP适配器模块实现与S7-300/400的连接。配置过程中,需要在S7-1200和S7-300/400上定义各自的站地址,创建并分配输入/输出映射,然后在PLC程序中编写通信程序,...
总结起来,移动通信是现代生活中不可或缺的一部分,它涉及到无线通信技术、频谱管理、网络架构优化以及设备设计等多个方面。随着技术的进步,我们已经从最初的移动通信发展到了如今的3G、4G甚至5G时代,未来的移动...
"移动通信技能技术总结1G~4G发展史" 移动通信技能技术从第一代(1G)到第四代(4G)的发展,经历了数十年的发展和演变。自1897年意大利人M.G.马可尼实现了第一项无线电通信实验以来,移动通信技术经历了四个阶段的...
【工程通信个人年终总结】 在过去的一年里,作为一名工程通信领域的从业者,我经历了从初入行业到逐渐熟悉业务的转变。在***公司的各个项目中,我不仅深化了对工程通信的理解,同时也意识到自身存在的问题与不足。...
1. **信息管理**:信息管理是通信工程监理的重要组成部分,涉及到对工程进度、质量、安全等各方面的信息收集、整理和发布。该从业者作为信息接口人,负责汇总郑州移动市区及郊县的工程信息,通过及时通报公示,确保...
面向对象的用电信息数据交换协议学习总结,系统总结698采集系统面向对象通信协议的思想和关于698采集系统面向对象通信协议的框架、技术特点与创新,加深对部分术语和数据类型的认知。
1. **文件管理**:资料员负责收集、整理和归档桩基、系梁、承台、立柱等各个施工阶段的原始资料,确保信息准确无误并在规定时间内与相关部门交接,避免积压和遗漏。 2. **资料合规性**:经过多次内外部检查,资料...
1. 第一代(1G)移动通信系统:这一阶段主要是模拟通信系统,如美国的AMPS系统和欧洲的TACS,主要用于语音通信。 2. 第二代(2G)数字蜂窝移动通信系统:包括GSM和CDMA系统,不仅支持语音通信,还引入了低速数据...
这些系统分别代表了移动通信的不同发展阶段和技术标准。 5. **未来发展**:随着技术的进步,移动通信正朝着第四代(4G)和第五代(5G)发展。4G提供了更高的数据速率和更低的延迟,5G则进一步提升了速度,引入了...
1. 移动通信理论与技术:关注移动通信系统的创新技术,如混合多址接入、网络规划、无线资源管理,以及各种编码和调制技术,同时也会研究特定领域的专用移动通信系统。 2. 无线通信与移动计算:涉及无线局域网络、自...
《2018通信个人工作总结》是对过去一年通信行业工作者工作情况的全面回顾与反思,主要涉及了实习、培训和工作感悟三个方面。 首先,实习与培训内容是提升个人专业技能的关键阶段。在这个过程中,作者参与了CAD绘图...
1. **学习与准备**:作者在本科阶段就注重通信专业的学习,通过参加深圳讯方通信公司的培训,掌握了华为MA5100、OPTIX155/622光传输系统和CC08数字程控交换系统的相关知识。在东莞电信实习期间,他了解到电信运营的...
"通信监理个人年终总结" 本文主要总结了通信监理个人的一年工作经验,包括个人工作总结、监理业务能力提高、个人的综合素质提高等方面。通过总结,个人对公司的核心价值观有了深刻的认识,并且更加深刻地理解了公司...
这一领域经历了几个关键发展阶段,从第一代(1G)到第四代(4G),不断演进以支持更丰富的服务和更高的数据速率。1G时代采用模拟通信系统,如美国的AMPS和欧洲的TACS,主要用于语音通话。第二代(2G)引入了数字蜂窝...
### 现代交换原理与通信网技术知识点总结 #### 一、通信网与交换原理概述 ##### 1. 交换设备与交换方式 - **通信网中的交换**:通信网中的交换功能由交换节点(交换设备)完成,根据信息传输模式的不同,交换方式...
1. **项目收尾工作**:通信工程的收尾阶段涉及到遗留问题的解决,如设备标签整理、新建机房的后续施工、割接准备等。这要求工作人员具有高度的责任心和执行力,能够独立完成任务,即使在资源有限的情况下也能确保...
通过以上知识点的总结,可以看到工业数据通信与控制网络是一个不断发展和创新的领域,它涉及的技术和协议广泛而复杂。对于相关从业人员来说,了解和掌握这些基础知识是必不可少的,它们是解决实际问题、进行系统设计...
随着时间的发展,变电站的通信技术也随之发展,尤其是到了现代阶段,变电站内部设备间的通信采用了更加先进和高效的通信协议和标准,例如IEC 60870-5-103规约(站内二次设备间通信)、IEC 60870-5-102规约(电能量...