您的位置:首页 > 理论基础 > 计算机网络

应用程序开发——网络编程(InetAddress、TCP、UDP、Socket与ServerSocket、DatagramPacket与DatagramSocket、URL)

2018-03-29 16:13 671 查看
如何实现网络中的主机互相通信:(网络编程的目的:直接或间接地通过网络协议与其它计算机进行通讯)
●  通信双方地址 
●  一定的规则(有两套参考模型)
注意:OSI参考模型,模型过于理想化,未能在因特网上进行广泛推广。TCP/IP参考模型(或TCP/IP协议),事实上的国际标准
------------------------------------------------------------------------------------------------------------------
网络通信协议:



------------------------------------------------------------------------------------------------------------------
通讯要素一:(IP、端口号)
●  IP地址:唯一的标识Internet的计算机
●  端口号:标识正在计算机上运行的进程(不同的进程有不同的端口号)
注意:端口号被规定为一个16位的整数(0~65535,其中,0~1023被占用,如MySql占端口3306,http占端口80等。避免发生端口冲突,使用1024~65535中的某一个进行通信) 
------------------------------------------------------------------------------------------------------------------
InetAddress类: (主要表示IP地址,两个子类:Inet4Address、Inet6Address)
主机有两种方式表示地址:
●  域名(hostName):www.baidu.com
●  IP地址(hostAddress):202.108.35.210



域名解析:域名容易记忆,当在连接网络时输入一个主机的域名后,域名服务器(DNS)负责将域名转化成IP地址,这样才能和主机建立连接
------------------------------------------------------------------------------------------------------------------
通讯要素二:(网络通信协议:约定,即对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准)
TCP协议:(Transmission  Control  Protocol,传输控制协议)
●  使用前,须先建立TCP连接,形成传输数据通道
●  传输前,采用“三次握手”方式,是可靠的(询问是否可以访问,返回答复,得到答复后传输)
●  TCP协议进行通信的两个应用进程:客户端、服务端
●  在连接中可进行大数据量的传输
●  传输完毕,需释放已建立的连接,效率低
UDP协议:(User  Datagram  Protocol,用户数据报协议)
●  将数据、源、目的封装成数据包,不需要建立连接
●  数据包的大小限制在64K内
●  因无需连接,故是不可靠的
●  发送数据结束时无需释放资源,速度快
------------------------------------------------------------------------------------------------------------------
TCP协议之Socket:
●  网络通信其实就是Socket间的通信
●  Socket允许程序把网络连接当成一个流,数据在两个Socket间通过IO传输。
●  一般主动发起通信的应用程序属客户端,等待通信请求的为服务端
客户端:
●  创建Socket(根据服务端IP地址和端口号构造对象。服务器端响应,则建立通信线路。失败,会出现异常)
●  打开连接到Socket的输入/出流,进行数据传输(getInputStream()、getOutputStream()方法获得)
●  进行数据读/写操作
●  关闭Socket(断开客户端到服务器的连接,释放线路 )



服务端:
●  创建ServerSocket(根据端口号,监听客户端的请求)
●  调用accept()方法得到Socket(监听连接请求,根据端口判断是否连接)
●  打开连接到Socket的输入/出流,进行数据传输(getInputStream()、getOutputStream()方法获得)
●  进行数据读/写操作
●  关闭ServerSocket和Socket(客户端访问结束)



------------------------------------------------------------------------------------------------------------------
UDP协议之DatagramPacket:
●  DatagramPacket对象封装UDP数据包(含接送端的IP地址和端口号、发送内容等)
●  DatagramSocket发送(接收)数据包(系统不保证一定能送达,也不确定什么时候送达)
●  关闭DatagramSocket
发送端:



接收端:



注意:UDP协议中每个数据都给出了完整的地址信息,因此无须建立发送方和接收方的连接。发送端与接收端是两个独立的运行程序

------------------------------------------------------------------------------------------------------------------
URL:(从网络上获得统一资源)



------------------------------------------------------------------------------------------------------------------

总结:
●  位于网络中的计算机具有唯一的IP地址,这样不同的主机可以互相区分
●  客户端-服务器是一种最常见的网络应用程序模型。服务器是一个为其客户端提供某种特定服务的硬件或软件。客户机是一个用户应用程序,用于访问某台服务器提供的服务。端口号是对一个服务的访问场所,它用于区分同一物理计算机上的多个服务。套接字用于连接客户端和服务器,客户端和服务器之间的每个通信会话使用一个不同的套接字。TCP协议用于实现面向连接的会话
●  Java中有关网络方面的功能都定义在 java.net 程序包中。Java用InetAddress对象表示IP地址,该对象里有两个字段:主机名(String) 和IP地址(int)
●  Socket和ServerSocket实现了基于TCP协议的客户端、服务器程序。Socket是客户端和服务器之间的一个连接,连接创建的细节被隐藏。这个连接提供一个安全的数据传输通道,这是因为TCP协议可以解决数据在传送过程中的丢失、损坏、重复、乱序以及网络拥挤等问题,它保证数据可靠的传送
------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐