(八)Java网络编程

Java网络编程

1、tcp和udp的区别

TCP,Transmission Control Protocol 的缩写,即传输控制协议。

1)面向连接,即必须在双方建立可靠连接之后,才会收发数据

2)信息包头 20 个字节

3)建立可靠连接需要经过3次握手

4)断开连接需要经过4次挥手

5)需要维护连接状态

6)报文头里面的确认序号、累计确认及超时重传机制能保证不丢包、不重复、按序到达

7)拥有流量控制及拥塞控制的机制

 

UDP,User Data Protocol 的缩写,即用户数据报协议。

1)不建立可靠连接,无需维护连接状态

2)信息包头 8 个字节

3)接收端,UDP 把消息段放在队列中,应用程序从队列读消息

4)不受拥挤控制算法的调节

5)传送数据的速度受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制

6)面向数据报,不保证接收端一定能收到

2、OSI的七层模型

1)物理层

2)数据链路层

3)网络层

4)传输层

5)会话层

6)表达层

7)应用层

3、Java中的Socket

1)Socket也称作套接字,用于描述IP地址和端口,是一个通信链的句柄,是应用层与传输层之间的桥梁

2)应用程序可以通过Socket向网络发出请求或应答网络请求

3)网络应用程序位于应用层,TCP和UDP属于传输层协议,在应用层和传输层之间,使用Socket来进行连接

4)Socket是传输层供给应用层的编程接口

5)Socket编程可以开发客户端和服务器应用程序,可以在本地网络上进行通信,也可通过公网Internet在通信

4、基于TCP的Socket编程的主要步骤

服务端:

1)指定本地的端口创建 ServerSocket 实例, 用来监听指定端口的连接请求

2)通过 accept() 方法返回的 Socket 实例,建立了一个和客户端的新连接

3)通过 Sockect 实例获取 InputStream 和 OutputStream 读写数据

4)数据传输结束,调用 socket 实例的 close() 方法关闭连接

客户端:

1)指定的远程服务器 IP 地址和端口创建 Socket 实例

2)通过 Socket 实例获取 InputStream 和 OutputStream 来进行数据的读写

3)数据传输结束,调用 socket 实例的 close() 方法关闭连接

5、基于UDP的Socket编程的主要步骤

服务端:

1)指定本地端口创建 DatagramSocket 实例

2)通过字节数组,创建 DatagramPacket 实例,调用 DatagramSocket 实例的 receive() 方法,用 DatagramPacket 实例来接收数据

3)设置 DatagramPacket 实例返回的数据,调用 DatagramSocket 实例的 send() 方法来发送数据

4)数据传输完成,调用 DatagramSocket 实例的 close() 方法

客户端:

1)创建 DatagramSocket 实例

2)通过 IP 地址端口和数据创建 DatagramSocket 实例,调用 DatagramSocket 实例 send() 方法发送数据包

3)通过字节数组创建 DatagramSocket 实例,调用 DatagramSocket 实例 receive() 方法接受数据包

4)数据传输完成,调用 DatagramSocket 实例的 close() 方法

posted on 2023-01-23 22:01  ”懒羊羊“学Java  阅读(30)  评论(0编辑  收藏  举报