网络编程
网络编程概述
计算机网络
把分布在不同地理区域的具有独立功能的计算机,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统.
Java是Internet上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程,序。
Java提供的网络类库,可以实现网络连接,联网的底层细节被隐藏在Java的本机安装系统里,由JVM进行控制.并且Java实现了一个跨平台的网络库,程序员面对的是一个统一的网络编程环境.
网络编程的目的
直接或间接地通过网络协议与其他计算机进行通讯.
网络编程中有两个主要的问题
如何准确地定位网络上一台或多台主机
找到主机后如何可靠有效地进行数据传输
通讯要素(IP和端口号)
IP地址(InetAddress)
作用:唯一的标识Internet上的计算机
本地回环地址(hostAddress):127.0.0.1
主机名(hostName):localhost
IP地址:公网地址(万维网使用)和私有地址(局域网使用)192.168
特点:不易记忆
端口号
概念:标识正在计算机上运行的进程(程序)
不同的进程有不同的端口号
被规定为一个 16 位的整数 0~65535.
端口分类
公认端口:0-1023,被预先定义的服务通信占用
注册端口:1024-49151,分配给用户进程或应用程序。
动态/私有端口:49152-65535.
端口号和IP地址的组合得出一个网络套接字
网络通信协议
概念:计算机网络中实现通信必须有一些约定,即通信协议,对速率、传输代码、代码结构、 传输控制步骤、出错控制等制定标准.
通信协议分层的思想:由于结点之间联系很复杂,在制定协议时,把复杂成份分解成一些简单的成份,再将它们复合起来。最常用的复合方式是层次方式,即同层间可以通信、上一层可以调用下一层,而与再下一层不发生关系。各层互不影响,利于系统的开发和扩展.
传输层协议
传输层控制协议TCP(Transmission Control Protocol)
用户数据包协议UDP(User Datagram Protocol)
**TCP/IP 以其两个主要协议:传输控制协议(TCP)和网络互联协议(IP)**而得名,实际上是一组协议,包括多个具有不同功能且互为关联的协议.
IP(Internet Protocol)协议是网络层的主要协议,支持网间互连的数据通信.
TCP
使用TCP协议前,须先建立TCP连接,形成传输数据通道
传输前,采用“三次握手”方式,是可靠的
TCP协议进行通信的两个应用进程:客户端、服务端
在连接中可进行大数据量的传输
传输完毕,需释放已建立的连接,效率低
在断开时要进行**“四次挥手**”
三次握手
四次挥手
UDP
InetAddress类
Internet上的主机有两种方式表示地址:
域名(hostName):www.baidu.com
IP地址(hostAddress):220.181.111.37