0
点赞
收藏
分享

微信扫一扫

面向网络编程

徐一村 2022-04-14 阅读 41

面向网络编程

计算机网络

把分布在不同地方的计算机通过通信设备连接起来,通过软件实现资源共享。

网络编程

Java语言支持网络,Java语言把网络实现细节封装成不同的类,使用这些类,开发的程序,就可以实现网络间数据传输。

ServerSocket 服务器端

Socket 客户端

网络编程的核心要素

  • 如何精准的找到网络中的某台主机(通过IP+端口号)

  • 找到后如何可靠高效的进行高效的传输(网络传输协议,TCP,UDP)

OSI七层模型

应用层/表示层/会话层/运输层/网络层/链路层/物理层

TCP/IP模型

网络接口层/网际层/运输层/应用层

TCP

三次握手,建立连接

 

 

标志位(Flags):共6个,即URG、ACK、PSH、 RST、SYN、FIN,

具体含义如下: URG:紧急指针(urgent pointer)有效。

ACK:确认序号有效。

PSH:接收方应该尽快将这个报文交给应用层。

RST:重置连接。

SYN:发起一个新连接。

FIN:释放一个连接。

四次挥手,释放连接

 

实现网络编程

Scoket类 套接字:包含服务器IP+端口

常用方法

.close() 关闭Socket

.getInputStream 与Socket相关联的字节输入流,从Socket中读取数据

.getOutputStream 与Socket相关联的字节输出流,向Socket中写入数据

ServerScoket 服务器Socket,提供服务,参数port不能是已经使用的

0 ~ 1024 未被系统使用或保留的端口号,0 ~ 65535为有效的端口号, 也就是说我们要对一些程序定义端口号的时候,要选择1024 ~ 65535范 围内的整数数字。

常用方法

.accept() 监听有没有客户端连接到服务器,连接到后返回客户端Scoket对象,如果一直没有客户端,则一直阻塞等待

.close 关闭ServerSocket

TCP编程

客户端

  • 创建Socket

  • 打开连接到Socket的getOutputStream() 和 getInputStream (),输出流将信息写入线程

  • 按协议对Socket进行读写操作

  • 关闭Socket

服务器端

  • 创建ServerScoket,绑定接口

  • 调用accept(),监听连接请求

  • 调用 该Socket类对象的 getOutputStream() 和 getInputStream ():获取 输出流和输入流,开始网络数据的发送和接收。

  • 关闭ServerScoket

UDP编程

类 DatagramSocket 和 DatagramPacket 实现了基于 UDP 协议网络程序

流程

  1. DatagramSocket与DatagramPacket

  2. 建立发送端,接收端

  3. 建立数据报

  4. 调用Socket的发送、接收方法

  5. 关闭Socket

举报

相关推荐

0 条评论