通信阶段技术总结(一)

通信阶段伊始,这是第一次总结,现尝试将2节课所学所悟整理如下。


创建服务器只需简短一行代码:

ServerSocket server=new ServerSocket(9090);

服务器创建好后,服务器只需坐等客户机的连接:

java.net.Socket client=server.accept();

当有客户机与服务器连接上后,需要从Socket管道中得到输入输出流:

InputStream ins=client.getInputStream();
OutputStream ous=client.getOutputStream();

一切就绪后,考虑setUpServer()即可。

服务器不可能只服务于一个客户端,这时需要建立线程,每有一个客户机连接后就启动一个。
此外,用线程执行“阻塞”的代码,可以避免“阻塞”其他方法的调用。


以上是简单服务器的建立流程,现简述群聊服务器。

总的来说,简单服务器客户端的代码需要5个类:ChatServer、ServerThread、ChatTools、DaoTools和UserInfo。

ChatServer:
服务器运行的入口,等待连接并将进入的连接交给ServerThread处理。

ServerThread:
线程类,其run()方法负责处理Socket对象,一个线程可以看做一个客户端。

ChatTools:
存放已连接状态的ServerThread对象,负责这些对象之间的消息传递。

DaoTools:
验证登陆的合法性,其中保存着已注册的用户账号和信息。

UserInfo:
用户数据模板,每一个对象保存对应用户的账号信息。

需要注意的是,5个类虽不多,但其间的参数传递蛮复杂。这就要求我们编写程序时应注意代码的封装,封装越到位代码显得越清晰明了,模块化的优势增加了各个方法的可移植性和可修改性。


通过学习,还能总结出:

当不需要实例化一个类时,可以将它的构造函数写成私有。

当一个方法不需要通过实例化这个类来实现时,可以将它写成static的。

心得体会:

勤奋一点、常识懂得多一点、闹钟调得快一点、上课来得早一点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值