初涉通信

初涉通信


感谢上帝,经过一个暑假的跋涉,菜鸟的java之旅终于到了通信这一关了。

对于通信我个人的理解就是机器和机器之间的交流,不一定是电脑之间,可以是电脑和手机,可以手机时间,甚至可以是电脑和冰箱之间,工厂里两个有关联的生产机器之间等等。所以我觉得通信是个非常有意思,也是非常重要的东西。

面前学到的Socket其实很简单,就是在相应的端口上实现一个服务器,然后客户端通过访问相应IP地址,相应端口号,来访问服务器。服务器和客户机之间用流实现交流。实现如此之简单还是要再一次感谢众多开发者的辛勤工作,使java变得如此强大。

可以用原理实现一个IM系统。原理也就是实现一个服务器,然后实现多个客户机来对服务器进行访问。服务器进行对客户机的管理,客户机通过服务器和服务器进行通信,或者和别的客户机进行通信,

首先要实现一个服务器。了解了大致思路以后,我自己设计了一个简单的服务器。我主要的类有Client类,里面的属性有客户的用户名,密码,账号,接待该客户的线程;CastTool类,这个类主要是用来群发消息的;OperateData类,这个类是用来处理与客户有关的数据的,包括存储客户资料,在登录时验证是否存在该客户账号,客户的密码是否正确,删除客户,查找客户,添加客户,清空所有客户;Receiver类,这个线程用来接待客户,每有一个客户机进来,就有一个线程去接待,具体的接待内容有,提供注册和登录服务,对客户机发送消息;Server类,这个类是服务器,通过构造方法来实例化一个服务器。ServerUI类,这个类是服务器的界面。

在刚开始设计这些类的时候,觉得这些框架应该可以了。结果代码完成后,如果一切坏境都完美,并且客户是非常乖的按照要求来操作,那么这个这个服务器是可以运作的。但是如果稍微出现点差错,那么这个服务器就会出问题,会崩掉。真是太脆弱了。因为实际情况中各种情况是很复杂的,所以对各种意外对各种状况都要有相应的处理。这样的工作量就很大了。对这个服务器我就我所知道的各种状况都进行测试,对出现的一个个问题进行解决。这个过程挺头痛的。更头痛的是之前设计的框架因为没有考虑到这么多情况,所以在原来的基础上改,越改越复杂,越改越乱。

目前做出的这个服务器,已知的各种情况基本上都能应对。在删除客户时还会有问题,在后面会解决。客户机的状态显示有一定的延迟,这个和刷屏有关,计划用一个独立的刷屏线程来解决。

目前的这些代码真的不能让人满意,代码的耦合度很高。代码的结构比较混乱了。真的发现有好多东西要学。

通信接下来的通信的数据,要做到安全,健壮,高效,以及各种功能的完善。还有很多工作要做,工程很浩大,希望能够做好!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值