网络编程
●网络编程概述
借助于计算机网络,实现程序间进行信息/数据传输
计算机网络:
利用通信设备和线路,把不同区域的计算机,最终实现数据的传输.
● Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的
支持,程序员能够很容易开发常见的网络应用程序。
● Java提供的网络类库,可以实现网络连接,联网的底层细节被隐藏在Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境。
• 网络编程的目的:
直接或间接地通过网络与其它计算机进行通讯。
• 网络编程中有两个主要的问题:
1. 如何准确地定位网络上一台或多台主机/程序
2. 找到主机后如何可靠高效地进行数据传输。
●网络模型
OSI 7层模型
TCP/IP模型 协议进行控制,ip定位
●网络通信要素:IP,端口号,通信协议
● 网络编程有三个要素分别是:IP地址、端口号和通信协议.
IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址.网络中的计算机使用IP地址来进行唯一标识. 在Windows系统下,打开cmd,输入命令ipconfig,按回车即可查看。
本地回环地址(hostAddress):127.0.0.1 ,它代表设备的本地虚拟接口.
端口号是计算机中的应用程序的一个整数数字标号,用来区分不同的应用程序。
有的程序启动时,计算机可以自动的分配,有的可以设置固定的端口号,但有些端口号不能重复.
0~ 1024未被系统使用或保留的端口号,0~65535为有效的端口号
以后对一些程序定义端口号的时候,选择1024~65535范围的整数数字
通信协议:在传输数据时,对如何传输进行控制,例如:传输什么内容,速率,出现问题如何解决等等…
- 传输控制协议TCP
TCP协议:
在发送数据前,必须先建立TCP连接,形成传输数据通道
传输前,采用三次握手机制(传输数据是可靠的,服务器连接不通会报错):
1.客户端给服务器发送一个请求连接消息
2.服务器接收到消息后,给客户端做出一个回应,确认服务器收到了客户端的消息
3.客户端为服务器再次进行一个确认回应这样客户端,服务器双方都知道自己发送的消息对方收到了.
传输可靠,效率相对较低.
断开要进行四次挥手:
1.客户端向服务器发送一个断开请求
2.服务器接收到断开请求,确认回复,发送必要的数据
3.服务器向客户端发送断开的请求
4.客户端向服务器确认回复 - 用户数据协议UDP
将数据源,数据,目标地址封装成一个数据包/报,然后发送
发送成功不知道,所以不可靠,
●TCP编程
基于TCP协议控制的数据传输
●UDP编程
发送端:DatagramSocket
接收端:DatagramPacket