平台和工具的选择
构思了几天,终于着手开始我的学习记录 《基于Java的网络编程》 ,我会尽可能详细地让完全不会的新手,得到一个详细的入门学习。
要解决的问题
有问题,才能解决问题。
2018年6月我想做一款外卖软件,但是后来放弃了,就没有深入了解。对于网络编程,感觉什么都是很模糊地,虽然Java也接触过,编程也不是新手了。但是你懂的,什么都会,什么都不精。
如果没有任何的编程经验,那可能心里的迷惘更加严重,其实把问题分解后,解决就会简单
那么,我们就需要先理清几个问题:
1.软件肯定需要网络后台,那么提供数据交换的 服务器 要怎么做?
2. 服务器上面要跑什么软件作为 后台服务端 以供客户端连接?
3. 后台的 数据 需要保存在哪里?
4. 客户端和服务端要以什么样的 通信协议 进行沟通;
通信协议
因为我们现在什么也没有,所以就从需求定架构好了,我们把上面的问题倒序来解决。
首先,通信协议有很多,我也不去百度然后罗列在这里了。有最基础的方式,也有封好的。这里只是学习,就选用简单一些的HTTP协议,也可以方便地用网页浏览器进行交互测试。
数据存储
数据库选择主要是两种,SQL和非SQL,也可以两者都用。这里就直接选用MySQL,就不多说了。
服务端
支持HTTP协议的编程语言很多,可选的范围也大。我记得有个人说过,用什么都可以写,就看合不合适了,这里就要结合容器来选择了。
就好比汇编、C、C++、VB、Java都能写程序,如果要快速开发一个界面简单的单机软件,我可能会用VB来写。如果要性能高,我可能会用C++来做。
回到正题,如果从容器开始就自己写,自己绑定端口,自己去解析协议,自己去控制线程,其实还真的不用考虑这个。查了很多资料,最终选定用Servlet来做服务,容器也有免费的Tomcat。
Servlet是基于Java的,所以移植性也高。
服务器
Tomcat在Win和linux下都能使用。做开发的时候也可以直接在Win下测试。生产环境下也能简单地布署。甚至于可以考虑入手一块树莓派,用于布署自己的业余项目。