java就业培训教程第十一章 网络编程

java就业培训教程第十一章 网络编程

ID:20227823

大小:493.00 KB

页数:23页

时间:2018-10-11

java就业培训教程第十一章 网络编程_第1页
java就业培训教程第十一章 网络编程_第2页
java就业培训教程第十一章 网络编程_第3页
java就业培训教程第十一章 网络编程_第4页
java就业培训教程第十一章 网络编程_第5页
资源描述:

《java就业培训教程第十一章 网络编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11章网络编程有人说,20世纪最伟大的发明并不是计算机,而是计算机网络。还有人说,如果你买了计算机而没有联网,就等于买了电话机却没有接电话线一样。计算机网络就是实现了多个计算机互联的系统,相互连接的计算机之间彼此能够进行数据交换。正如城市道路系统总是伴随着城市交通规则来使用的道理,计算机网络总是伴随着计算机网络协议一起使用的。网络协议规定了计算机之间连接的物理、机械(网线与网卡的连接规则)、电气(有效的电平范围)等特性以及计算机之间的相互寻址规则、数据发送冲突的解决、长的数据如何分段传送与接收等。就象不同的城市可能有不同的交通规则一

2、样,目前的网络协议也有多种,其中,TCP/IP协议就是一个非常实用的网络协议,它是Internet所遵循的协议,是一个“既成事实”的标准,已广为人知并且广泛应用在大多数操作系统上,也可用于大多数局域网和广域网上。网络应用程序,就是在已实现了网络互联的不同的计算机上运行的程序,这些程序相互之间可以交换数据。编写网络应用程序,首先必须明确网络程序所要使用的网络协议,TCP/IP是网络应用程序的首选协议,大多数网络程序都是以这个协议为基础,本章关于网络程序编写的讲解,都是基于TCP/IP协议的。11.1网络编程的基础知识11.1.1TCP/

3、IP网络程序的IP地址和端口号要想让网络中的计算机能够互相通信,必须为每台计算机指定一个标识号,通过这个标识号来指定要接收数据的计算机和识别发送数据的计算机,在TCP/IP协议中,这个标识号就是IP地址,目前IP地址在计算机中用四个字节,也就是32位的二进制数来表示,称为Ipv4。为了便于记忆和使用,我们通常取用每个字节的十进制数,并且每个字节之间用圆点隔开的文本格式来表示IP地址,如192.168.8.1。随着计算机网络规模的不断扩大,用四个字节来表示IP地址已越来越不敷使用,人们正在实验和定制使用16个字节表示IP地址的格式,这就

4、是Ipv6。由于Ipv6还没有投入使用,现在网络上用的还都是Ipv4,我们这里的知识也只围绕着Ipv4来展开。因为一台计算机上可同时运行多个网络程序,IP地址只能保证把数据送到该计算机,但不能保证把这些数据交给哪个网络程序,因此,每个被发送的网络数据包的头部都包含有一个称为"端口"的部分,它是一个整数,用于表示该数据帧交给哪个应用程序来处理。我们还必须为网络程序指定一个端口号,不同的应用程序接收不同端口上的数据,同一台计算机上不能有两个使用同一端口的程序运行。端口数范围为0-65535之间。0-1023之间的端口数是用于一些知名的网络

5、服务和应用,用户的普通网络应用程序应该使用1024以上的端口数,从而避免端口号已被另一个应用或系统服务所用。如果我们的一个网络程序指定了自己所用的端口号为3150,那么其他网络程序发送给这个网络程序的数据包中必须指明接收程序的端口号为3150,当数据到达第一个网络程序所在的计算机后,驱动程序根据数据包中的3150这个端口号,就知道要将这个数据包交给这个网络程序。11.1.2UDP与TCP在TCP/IP协议栈中,有两个高级协议是我们网络应用程序编写者应该了解的,它们是"传输控制协议"(TransmissionControlProtoco

6、l,简称TCP)和"用户数据报协议"(UserDatagramProtocol,简称UDP)。TCP是面向连接的通信协议,TCP提供两台计算机之间的可靠无错的数据传输。应用程序利用TCP进行通信时,源和目标之间会建立一个虚拟连接。这个连接一旦339建立,两台计算机之间就可以把数据当作一个双向字节流进行交换。就像我们打电话一样,互相能听到对方的说话,也知道对方的回应是什么。UDP是无连接通信协议,UDP不保证可靠数据的传输,但能够向若干个目标发送数据,接收发自若干个源的数据。简单地说,如果一个主机向另外一台主机发送数据,这一数据就会立即

7、发出,而不管另外一台主机是否已准备接收数据。如果另外一台主机收到了数据,它不会确认收到与否。就像传呼台给用户发信息一样,传呼台并不知道你是否能收到信息(为了避免丢失用户信息,他们常常将一条信息发送两遍)。TCP、UDP数据包(也叫数据帧)的基本格式如图11.1所示。图11.111.1.3Socket大家不要生硬和孤立地去理解什么是Socket,就象我们不要让一个从来没有见到过大米与米饭的人去理解什么是“rice”一样的道理,任何一个事物和概念都得有个代名词,大家只有先理解和事物和概念本身,就自然理解了它的代名词。同样Socket是网络

8、驱动层提供给应用程序编程的接口和一种机制,大家先掌握和理解了这个机制,自然就明白了什么是Socket。大家可以认为Socket是应用程序创建的一个港口码头,应用程序只要把装着货物的集装箱(在程序中就是要通过网络发送的数据

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。