网络通信要素
p地址:与网络上哪台计算机通信
p端口:与计算机上的哪个网络应用程序通信
p协议:采用什么规则进行通信
Java.net的包提供相应的类与方法
p地址:获得要通信的网络计算机地址
代表IP地址的InetAddress类
p端口:获得要通信网络应用程序
0-65535的端口号,1024以下的保留
p协议:采用某种确认的通信规则
TCP:ServerSocket/Scoket
UDP:DatagramSocket
IP地址:
p IP网络中每台主机都必须有一个惟一的IP地址;
p IP地址是一个逻辑地址;
p 因特网上的IP地址具有全球唯一性;
p 32位,4个字节,常用点分十进制的格式表示,例如:192.168.0.16
p Java.net包中提供一个InetAddress类表示IP地址
InetAddress对象:
用途:获得要通信的对象的IP地址.
说明: InetAddress类提供了域名解析和反解析功能
InetAddress类没有构造函数,但拥有一 些能够返回 InetAddress对象的static的方法
getLocalHost():返回本地主机的IP地址
getByName(String host):返回host主机的IP地址
getByAddress(byte[] addr):返回addr主机的IP地址, addr数组元素的值是未经处理的4组数字(-127~128).
以上都是静态方法,返回值为InetAddress对象,且都要抛出异常throws UnknownHostException
端口:
p端口用一个整数型标识符来表示,即端口号。端口号跟协议相关,TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立,端口通常称为协议端口(protocol port) ,简称端口。
p端口使用一个16位的数字来表示,它的范围是0~65535,1024以下的端口号保留给预定义的服务。例如:http使用80端口。
TCP协议实现的方法:
p协议:为进行网络中的数据交换(通信)而建立的规则、标准或约定。(=语义+语法+规则)
pTCP/IP已成为Internet上通信的工业标准。
pTCP/IP模型包括4个层次:
n应用层:SMTP\POP3\FTP\Telnet\Http
n传输层: TCP\UDP
n网络层:IP\ICMP\IGMP
n网络接口
p 为了能够方便的开发网络应用软件,由美国伯克利大学在Unix上推出了一种应用程序访问通信协议的操作系统调用socket(套接字)。socket的出现,使程序员可以很方便地访问TCP/IP,从而开发各种网络应用的程序。
p 随着Unix的应用推广,套接字在编写网络软件中得到了极大的普及。后来,套接字又被引进了Windows 等操作系统中。Java语言也引入了套接字编程模型。
p TCP协议Socket:
Socket类
ServerSocket类
p
n 发起连接请求的一方:客户端(client)
n 接受连接请求的一方:服务器端(Server)
TCP协议通信过程
客户端程序编写:
①调用Socket()创建一个流套接字,并连接到服务器端;
②调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。
③最后关闭通信套接字。
服务器程序编写:
①调用ServerSocket(int port)创建一个服务器端套接字,并绑定到指定端口上;
②调用accept(),监听连接请求,如果客户端请求连接,则接受连接,返回通信套接字。
③调用Socket类的getOutputStream()和getInputStream获取输出流和输入流,开始网络数据的发送和接收。
④最后关闭通信套接字。