Java工程师必知词汇:网络编程-阿里云开发者社区

开发者社区> Java开发者> 正文

Java工程师必知词汇:网络编程

简介: 网络编程指的是多台主机之间的数据通讯操作。 网络的核心定义在于:有两台以上的电脑就称为网络。网络连接的目的不仅仅是为了进行电脑的串联,更多的情况下是为了进行彼此之间的数据通讯,而在通讯的实现上就产生了一系列的处理协议:IP、TCP、UDP等等,也就是说所谓的网络编程,实际上实现的就是一个数据的通讯操作而已,只不过这个通讯操作需要分为客户端和服务端。

|名词定义|


网络编程指的是多台主机之间的数据通讯操作。

网络的核心定义在于:有两台以上的电脑就称为网络。网络连接的目的不仅仅是为了进行电脑的串联,更多的情况下是为了进行彼此之间的数据通讯,而在通讯的实现上就产生了一系列的处理协议:IP、TCP、UDP等等,也就是说所谓的网络编程,实际上实现的就是一个数据的通讯操作而已,只不过这个通讯操作需要分为客户端和服务端。

网络程序的开发的两种模型:
1、C/S(Client/Server、客户端与服务端):要开发出两套程序,一套程序为客户端,另外一套为服务端,如果现在服务端发生了改变之后客户端也应该进行更新处理,这种开发可以由开发者自定义传输协议,并且使用一些比较私密的端口,所以安全性是比较高的,但是开发与维护成本比较高;
特点
服务端的特征:
被动的角色(从)。
等待来自客户端的请求。
处理请求并传回结果。
客户端的特征:
主动的角色(主)。
发送请求。
等待直到收到响应。

C/S分为两种开发:TCP(可靠的数据连接)、UDP(不可靠的数据连接);
TCP的程序开发是网络程序的最基本的开发模型,其核心的特点是使用两个类实现数据的交互处理:ServerSocket(服务端)、Socket(客户端)。ServerSocket的主要目的是设置服务器的监听端口,而Socket需要指明要连接的服务器地址和端口。

数据报发送与接收(UDP),基于数据报的网络编程实现,如果想要实现UDP程序需要两个类:DatagramPacket(数据内容)、DatagramSocket(网络的发送与接收)。数据报就好比发送的短消息一样,客户端是否收到与发送者无关。
UDP发送的数据一定是不可靠的,但是TCP由于需要保证可靠的连接,所以所需要的服务器资源就越多。

2、B/S(Browser/Server、浏览器与服务端):只开发一套服务端的程序,而后利用浏览器作为客户端进行访问,这种开发与维护的成本较低(只有一套程序),但是由于其使用的是公共的HTTP协议并且使用的公共的80端口,所以其安全性相对较差,现在的开发基本上以“B/S”结构为主。

|参考资料|


[1] 阿里云大学Java视频课程
[2] Java开发者
[3] 维基百科

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

官方博客
官网链接