应用程序开发——网络编程(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协议可以解决数据在传送过程中的丢失、损坏、重复、乱序以及网络拥挤等问题,它保证数据可靠的传送
------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知
● 通信双方地址
● 一定的规则(有两套参考模型)
注意: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协议可以解决数据在传送过程中的丢失、损坏、重复、乱序以及网络拥挤等问题,它保证数据可靠的传送
------------------------------------------------------------------------------------------------------------------
自己整理,有些地方是扒拉的,如有侵犯,还望告知
相关文章推荐
- Java.UDP-TCP-DatagramSocket-DatagramPacket-InetAddress-ServerSocket-Socket
- Java.UDP-TCP-DatagramSocket-DatagramPacket-InetAddress-ServerSocket-Socket
- JAVA与网络开发(TCP:Socket、ServerSocket;UDP:DatagramSocket、DatagramPacket;多线程的C/S通讯、RMI开发概述)
- JAVA与网络开发(TCP:Socket、ServerSocket;UDP:DatagramSocket、DatagramPacket;多线程的C/S通讯、RMI开发概述)
- 黑马程序员_网络编程一(IP,TCP和UDP, DatagramSocket与DatagramPacket,TCP传输)
- java:网络编程(InetAddress,InetSocketAddress,URL,TCP(Socket与SeverSocket),TCP与UDP的区别)
- 网络编程一(IP,TCP和UDP, DatagramSocket与DatagramPacket,TCP传输)
- 黑马程序员_网络编程1(IP,TCP和UDP,DatagramSocket与DatagramPacket,TCP传输)
- Java笔记(9)-网络编程、URL、InetAddress、套接字、Socket、ServerSocket、多线程、UDP、广播数据包、远程调用
- day23网络编程UDP,TCP。IP。DatagramSocket。DatagramPacket。聊天程序。TCP传输。文本转换服务器。
- 网路编程-UDP-DatagramSocket、DatagramPacket ||LocalServerSocket和LocalSocket
- 黑马程序员--Java网络编程(InetAddress、DatagramSocket、DatagramPacket)
- 黑马程序员_Java第23天知识总结_IP地址类_端点Socket_DatagramSocket(UDPSocket)_Socket(TCPSocket)_ServerSocket
- 基于Udp的聊天室(DatagramSocket和DatagramPacket两个类)
- 跨平台C++服务器程序开发 (4)tcp socket状态图(server端)
- Windows Store apps开发[21]DatagramSocket与UDP
- [Socket]基于C++的纯面向对象的通用高性能大并发TCP-SERVER/CLIENT开发
- java.net.DatagramPacket/java.net.DatagramSocket-UDP Socket编程
- C#中开发之Socket网络编程TCP/IP层次模型、端口及报文等探讨
- 9.TCP/IP和UDP的socket网络编程