楼盘网站设计,做网站有哪些语言,潍坊网站建设wfxtseo,网站引导页动态效果怎么做1. 概念 
通过网络#xff0c;让两个主机之间能够进行通信#xff0c;基于这样的通信完成一定的功能 
只要满足进程不同即可#xff0c;即使是同一个主机#xff0c;只要是不同的进程#xff0c;基于网络完成编程 
进行网络编程时#xff0c;需要操作系统提供一组API让两个主机之间能够进行通信基于这样的通信完成一定的功能 
只要满足进程不同即可即使是同一个主机只要是不同的进程基于网络完成编程 
进行网络编程时需要操作系统提供一组API通过这些API才能完成编程 API可以认为是应用层和传输层之间交互的路径Socket API 通过这套API可以完成不同主机之间不同系统之间的网络通信 传输层提供的网络协议主要是 TCP 和 UDP 
这两个协议的特性工作原理差异很大使用这两个协议进行网络编程时存在一定的差异 
系统分别提供了两套 API 
2. TCP 和 UDP 的区别 
1TCP 是有连接的UDP 是无连接的 
连接是抽象的概念 
连接的本质就是建立连接的双方各自保存对方的信息 
两台计算机建立连接就是双方彼此保存了对方的关键信息 TCP 想要通信需要先建立连接如果对方拒绝通信无法完成 UDP 想要通信直接发送数据即可不需要对方的同意UDP 自身也不会保存对方的信息 UDP 自己不知道对方的信息但程序员要知道。UDP 本身不保存但调用UDP SocketAPI的时候要把对方的位置传送过去 2TCP 是可靠传输UDP 是不可靠传输 
网络上进行通信的时候A - B发送一个消息是不可能一定到达的 
所以对于可靠传输来说 
A - B发送一个消息消息是否到达BA本身能感知到 
进一步的就可以在发送失败的时候采取一定的措施尝试重传等 TCP 内置了可靠传输机制 UDP 没有内置可靠传输机制 可靠传输会使机制变复杂传输效率降低 3TCP 是面向字节流的UDP 是面向数据报的 
此处的字节流和文件IO的字节流是一个概念 
TCP 和文件操作一样以字节为单位进行传输 
UDP 是按照数据报UDP数据报有严格的格式为单位进行传输 网络通信数据的基本单位 1.数据报   Datagram 2.数据包   Packet 3.数据帧   Frame 4.数据段   Segment 4TCP 和 UDP 都是全双工的 
一个信道允许双向通信——全双工 
一个信道只能单向通信——半双工 
代码中使用一个 Socket 对象就可以发送数据也能接受数据 
3.UDP 的 socket api 的使用 
3.1 Socket 
soketc 是操作系统的中的一个概念本质上是一种特殊文件 
把网络通信和文件操作统一了 
Socket 就属于是把“网卡”这个设备给抽象成文件了 
往 Socket 文件中写数据相当于通过网卡发送数据 
往 Socket 文件中读数据相当于是通过网卡接受数据 
3.2 DatagramSocket API 
DatagramSocket 是UDP Socket用于发送和接收UDP数据报 
在Java中使用这个类来表示系统内部的 Socket 文件 
1DatagramSocket 构造方法 DatagramSocket()    创建一个 UDP 数据报套接字的 Socket 绑定到本机任意一个随机端口    一般用于客户端    DatagramSocket(int port)    创建一个 UDP 数据报套接字的 Socket 绑定到本机指定的端口   一般用于服务端   
2 DatagramSocket 方法 void    receive(DatagramPacket p)    从此套接字接收数据报如果没有接收到数据报该方法会阻塞等待    void send(DatagramPacket    p)    从此套接字发送数据报包不会阻塞等待直接发送    void close()  关闭此数据报套接字 
3.3 DatagramPacket AP DatagramPacket 是 UDP Socket 发送和接收的数据报 使用这个类表示一个 UDP 数据报 UDP 是面向数据报的每次进行传输都是以 UDP 数据报为基本单位的 1DatagramPacket 构造方法 DatagramPacket(byte[]    buf, int length)    构造一个 DatagramPacket 以用来接收数据报接收的数据保存在 字节数组第一个参数 buf 中接收指定长度第二个参数 length     DatagramPacket(byte[]    buf, int offset, int length,    SocketAddress address    构造一个 DatagramPacket 以用来发送数据报发送的数据为字 数组第一个参数 buf 中从 0 到指定长度第二个参数 length    address 指定目的主机的 IP 和端口号   
2DatagramPacket 方法 InetAddress    getAddress()    从接收的数据报中获取发送端主机 IP地址或从发送的数据报中获取接收端主机 IP 地址    int getPort()    从接收的数据报中获取发送端主机的端口号或从发送的数据报中获取接收端主机端口号    byte[] getData()    获取数据报中的数据   构造 UDP 发送的数据报时需要传入  SocketAddress, 该对象可以使用  InetSocketAddress  来创  建。 3.4 InetSocketAddress API InetSocketAddress    SocketAddress  的子类 构造方法     InetSocketAddress(InetAddress addr, int port)    创建一个 Socket 地址包含 IP 地址和端口号