《实战java程序设计---下》

TCP和UDP协议

TCP和UDP协议是传输层的两种协议。Socket是传输层提供给应用层的编程接口。

TCP:在网络通信中,TCP方式就类似于拨打电话,使用该方式进行网络通信时,需要建立专门的虚拟连接,然后进行可靠的数据传输,如果数据发送失败,则客户端会自动重发改数据。

UDP:UDP的方式就类似于发短信,使用这种方式进行网络通信时,不需要建立专门的虚拟连接,传输也不是很可靠,如果发送失败则客户端无法获得数据。

这两种传输方式都在实际的网络编程中使用,重要的数据一般使用TCP方式进行数据传输,而大量的非核心数据则可以通过UDP方式进行传输,在一些程序中甚至结合使用这两种方式进行数据传输。

由于TCP需要建立专用的虚拟连接并确认传输是否正确,所以使用TCP方式的传输速度稍微慢一些,而传输时产生的数据量也要比UDP大。

【总结】TCP是面向连接的,传输数据安全、稳定,效率相对较低。UDP是面向无连接的,传输数据不安全,但效率较高。

TCP协议:三次握手*Three-way-Handshake)

TCP(Transfer Control Protocol)在建立连接时分为三步:

(1)请求端(客户端):发送一个包含SYN(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序列号。

(2)服务端在收到客户端的SYN报文后,将返回一个SYN+ACK报文,表示客户端的请求被接受。同时TCP序号被加1,ACK即确认(Acknowledgement)。

(3)客户端返回一个确认报文ACK给服务器端,同样TCP序列号被加1,至此一个TCP连接完成。然后开始通信,数据处理。

UDP协议:(数据报通信方式)

每个数据发送单元被统一封装成数据报包的方式,发送方将数据报包发送到网络,数据报包在网络中去寻找它的目的地。

1、请求-响应模式:

在“请求-响应”模式中,Socket类用于发送TCP消息;ServerSocket类用于创建服务器。

套接字Socket是一种进程间的数据交换机制。这些进程既可以在同一机器上,也可以通过网络连接的不同机器上。换句话说,套接字起到了通信端点的作用。单个套接字是一行数据交换。一旦建立套接字连接,数据即可在相同或不同的系统中双向或者单向发送,直到其中一个端点关闭连接。套接字与主机地址和端口地址相关联。主机地址就是客户端或服务器程序所在主机的IP地址。端口地址是指客户端或服务器程序使用的主机的通信端口。

在客户端和服务器中,分别创建独立的Socket,并通过Socket的属性将两个Socket进行连接,这样,客户端和服务器通过套接字所建立的连接即可使用输入输出流进行通信。

通过Socket的编程顺序:

  1. 创建服务器ServerSocket。在创建时,定义ServerSocket的监听端口(在这个端口接收客户端发来的消息)。
  2. ServerSocket调用accept()方法,使之处于阻塞状态。
  3. 创建客户端Socket,并设置服务器的IP地址及端口。
  4. 客户端发出连接请求,建立连接。
  5. 分别取得服务器和客户端Socket的InputStream和OutputStream。
  6. 利用Socket和ServerSocket进行数据传输。
  7. 关闭流及Socket。

UDP通信编程基本步骤:

  • 创建客户端的DatagramSocket。创建时,定义客户端的监听端口。
  • 创建服务器端的DatagramSocket。创建时,定义服务器端的监听端口。
  • 在服务器端定义DatagramPacket对象,封装待发送的数据包。
  • 客户端将数据报包发送出去。
  • 服务器端接收数据报包。

反射机制:

java反射机制是java语言一个很重要的特性,是java“动态性”的重要体现。反射机制可以让程序在运行时加载编译器完全未知的类,是设计的程序更加灵活、开放。但是反射机制的不足之处会大大降低程序执行的效率。

动态语言:是指在程序运行时,可以改变程序结构或变量的类型。典型的动态语言有:Python、Ruby、JavaScript。。。

java反射机制的本质和Class类:

学习反射机制基本上就等同于学习Class类的用法。java反射机制让我们在程序运行状态中,对于任意一个类,都能知道该类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法。这种动态获取以及动态调用对象方法的功能就是“java的反射机制”。

核心设计模式:

设计模式(design pattern)是一套被反复使用、多数人知晓且经过分类编目的代码设计方法。使用设计模式时为了重用代码,使代码更容易被他人理解,保证代码的可靠性。使代码的编制真正实现了工程化。

GoF23设计模式:

【老鸟建议】学习设计模式,不在于死记硬背,而在于通过学习来更深刻的理解面向对象思想,掌握新的思维方式,体验经典设计之美。

GoF23设计模式

创建型模式

结构型模式

行为型模式

抽象工厂模式

工厂方法模式

单例模式

建造者模式

原型模式

适配器模式

桥接模式

组合模式

装饰模式

外观模式

享元模式

代理模式

责任链模式

解释器模式

模板方法模式

命令模式

迭代器模式

中介者模式

备忘录模式

观察者模式

状态模式

策略模式

访问者模式

用于创建对象

用于组织对象和类

关注对象之间的交互、相互通信和协作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值