初涉通信
感谢上帝,经过一个暑假的跋涉,菜鸟的java之旅终于到了通信这一关了。
对于通信我个人的理解就是机器和机器之间的交流,不一定是电脑之间,可以是电脑和手机,可以手机时间,甚至可以是电脑和冰箱之间,工厂里两个有关联的生产机器之间等等。所以我觉得通信是个非常有意思,也是非常重要的东西。
面前学到的Socket其实很简单,就是在相应的端口上实现一个服务器,然后客户端通过访问相应IP地址,相应端口号,来访问服务器。服务器和客户机之间用流实现交流。实现如此之简单还是要再一次感谢众多开发者的辛勤工作,使java变得如此强大。
可以用原理实现一个IM系统。原理也就是实现一个服务器,然后实现多个客户机来对服务器进行访问。服务器进行对客户机的管理,客户机通过服务器和服务器进行通信,或者和别的客户机进行通信,
首先要实现一个服务器。了解了大致思路以后,我自己设计了一个简单的服务器。我主要的类有Client类,里面的属性有客户的用户名,密码,账号,接待该客户的线程;CastTool类,这个类主要是用来群发消息的;OperateData类,这个类是用来处理与客户有关的数据的,包括存储客户资料,在登录时验证是否存在该客户账号,客户的密码是否正确,删除客户,查找客户,添加客户,清空所有客户;Receiver类,这个线程用来接待客户,每有一个客户机进来,就有一个线程去接待,具体的接待内容有,提供注册和登录服务,对客户机发送消息;Server类,这个类是服务器,通过构造方法来实例化一个服务器。ServerUI类,这个类是服务器的界面。
在刚开始设计这些类的时候,觉得这些框架应该可以了。结果代码完成后,如果一切坏境都完美,并且客户是非常乖的按照要求来操作,那么这个这个服务器是可以运作的。但是如果稍微出现点差错,那么这个服务器就会出问题,会崩掉。真是太脆弱了。因为实际情况中各种情况是很复杂的,所以对各种意外对各种状况都要有相应的处理。这样的工作量就很大了。对这个服务器我就我所知道的各种状况都进行测试,对出现的一个个问题进行解决。这个过程挺头痛的。更头痛的是之前设计的框架因为没有考虑到这么多情况,所以在原来的基础上改,越改越复杂,越改越乱。
目前做出的这个服务器,已知的各种情况基本上都能应对。在删除客户时还会有问题,在后面会解决。客户机的状态显示有一定的延迟,这个和刷屏有关,计划用一个独立的刷屏线程来解决。
目前的这些代码真的不能让人满意,代码的耦合度很高。代码的结构比较混乱了。真的发现有好多东西要学。
通信接下来的通信的数据,要做到安全,健壮,高效,以及各种功能的完善。还有很多工作要做,工程很浩大,希望能够做好!
分享到:
相关推荐
一个风电场内的通信拓扑图,对于初涉风电项目建设的人员可给予一些启发。
设备配置完成后,主机可以正常与设备通信。 4. **字符串描述符和报告描述符**:如果设备需要提供更详细的信息,如设备名称,会上传字符串描述符。对于特定类型的设备,如鼠标或键盘,还需上传报告描述符,定义设备...
总而言之,《VISUAL C++串口通信技术与典型实例》是一本全面而实用的指南,无论你是初涉串口通信的新手,还是已经在该领域有一定经验的开发者,都能从中受益。通过学习,你将掌握使用Visual C++进行串口通信的关键...
1. 进程管理(PM):负责进程的创建、销毁以及进程间的通信和调度。 2. 内存管理(MM):确保多进程安全地共享内存,防止数据冲突。 3. 网络协议栈:支持各种网络协议,如TCP/IP,使得Linux具备网络通信能力。 4. ...
无论你是经验丰富的工程师,还是初涉自动化领域的新手,都能从这本指南中获得宝贵的知识和实用的操作指导。它涵盖了各种通信场景下的解决方案,帮助你轻松应对不同的项目需求。 通过阅读这本指南,你将深入了解如何...
在局域网技术中,静态路由是网络管理员为了实现网络中不同网段间通信而设置的路由规则。本篇文章主要介绍了静态路由设置在局域网环境中的应用,以及在网络拓扑中不同网段间互访的情况下的静态路由配置方法。 静态...
总的来说,《Windows网络与通信程序设计》这本书通过丰富的实例和源代码,为读者构建了一个全面的学习框架,无论你是初涉网络编程的新手,还是寻求进阶提升的开发者,都能从中获益匪浅。通过阅读和实践,你可以掌握...
通过清晰的步骤讲解和直观的图表展示,无论是经验丰富的工程师还是初涉自动化领域的新手,都能轻松掌握通信设置的方法和技巧。 手册涵盖了从硬件连接到软件配置的全过程,对每一个环节都进行了深入剖析。它准确地...
无论是资深的工程师还是初涉自动化领域的新手,都能轻松从中获取所需的知识和操作方法。 手册涵盖了通信设置的各个方面,包括参数配置、地址分配、数据传输等。同时,它还特别关注了可能出现的问题及解决方法,为...
《S7-1200跟我学通信与工艺部分》是一个深入学习西门子S7-1200 PLC通信及工艺控制的教程资源。在这个压缩包中,我们重点探讨S7-1200系列PLC在...无论你是初涉此领域还是希望提升技能,这个教程都是一个宝贵的参考资料。
阿里云服务器搭建socket通信流程详解: ... ... - 选择操作系统,如Linux...此外,文档也涉及到了服务器配置、远程登录、文件传输以及开发环境的搭建等基础知识,对于初涉网络通信的开发者来说,是一篇较为全面的入门指南。
- 概算(修正概算)、预算执行情况与初步决算情况,并进行通信建设项目的投资分析。 > 分析项目建设成本与预算之间的差异,评估资金使用效率。 6. **经济技术分析**: - 主要技术指标测试值及结论; > 测试项目...
<br> 希望对delphi初学者,或初涉网络通信,udp/tcp通信的同行能有所借鉴. <br> 还有个txm2.0版本,基本仿QQ,实现局域网通信. 已停止开发. <br> 开放所有源码,欢迎转载,但希望保留出处和版权信息.谢谢 ...
无论是初涉职场的新手,还是拥有丰富经验的老员工,都可以从中获得宝贵的经验和知识,进而提升整个通信团队的工作质量和效率。因此,《通信员行为规范考核内容表》的发布和应用,对于通信行业的发展具有深远的意义。
熟悉这些知识点,对于初涉此领域的电气工程师来说是十分必要的。通过这样的设置,可以使得工业自动化系统的各个部分之间实现高效、可靠和安全的数据交换,这对于提高生产的自动化水平和整个系统的稳定性具有重要意义...
总之,"FSL_LIN_2.x_STACK_Package_4.5.9.7z"是一份全面的NXP LIN通信开发资源,无论你是初涉LIN通信还是寻求优化方案,都能从中受益。通过深入学习和实践,你可以更好地掌握NXP芯片在LIN通信中的应用,提升你的...
对于初涉Linux世界的Microsoft Windows用户而言,有许多新的术语需要学习。本词汇表简明地 解释了 Linux 产品常用的许多术语、首字母缩写词和缩写的意思和意义。(其中有些术语并不是Linux 所特有的,但许多Windows...
《JScope_V611m:嵌入式数据可视化利器》 在嵌入式系统开发过程中,实时数据的...无论你是初涉嵌入式开发的新手,还是经验丰富的老手,JScope_V611m都能成为你不可或缺的工具,帮助你在数据的海洋中找到航行的方向。