网络编程
C/S:客户端和服务器结构
B/S:浏览器和服务器结构
网络通信协议
UDP协议:用户数据协议 消耗资源小,通信效率高
TCP协议:传输控制协议 文件无差错传输
IP地址
小黑窗口ipconfig查看IP地址
本地IP地址 127.0.0.1 localhost
端口号
80端口 网络端口
数据库 mysql:3306 orcle:1521
Tomcat服务器:8080
===============================
============================
TCP通讯程序
面向连接的通信客户端和服务器必须经过三次握手,建立逻辑连接,才能通信(安全)
Socket类 (客户端)
构造方法
public Socket(String host, int port) :创建套接字对象并将其连接到指定主机上的指定端口号。如果指 定的host是null ,则相当于指定地址为回送地址。
参数:String host:服务器主机的名称/服务器的IP地址
int port:服务器的端口号
成员方法
1.public InputStream getInputStream() : 返回此套接字的输入流。
2.public OutputStream getOutputStream() : 返回此套接字的输出流。
3.public void close() :关闭此套接字。
4.public void shutdownOutput() : 禁用此套接字的输出流。
实现步骤:
1.创建一个客户端对象Socket,构造方法绑定服务器的IP地址和端口号
2.使用Socket对象中的方法getOutputStream()获取网络字节输出OutputStream对象
3.使用网络字符输出流OutputStream对象中的方法write,给服务器发送数据
4.使用Socket对象中的方法 getInputStream()获取网络字节输入流getInputStream对象
5.使用网络字节输入流getInputStream对象中的方法read,读取服务器回写的数据
6.释放资源(Socket)
注意:
1.客户端和服务器端进行交互,必须使用Socket中提供的网络流,不能使用自己创建的流对象
2.当我们创建客户端对象 Socket的时候,就会去请求服务器和服务器经过3次握手建立间接通路
ServerSocket (服务器)
构造方法
public ServerSocket(int port) :使用该构造方法在创建ServerSocket对象时,就可以将其绑定到一个指 定的端口号上,参数port就是端口号。
服务器要明确是哪个客户端请求的服务器
用accept方法获取到请求的客户端对象()Socket
成员方法
Server accept(int port) ,创建绑定到特定端口的服务器套接字
服务器实现步骤:
1.创建服务器ServerSocket对象和系统要指定的端口号
2.使用ServerSocket对象中的方法accept方法获取请求的客户端对象Socket
3.使用Socket对象中的方法getInputStream(),获取网络字节输入流getInputStream对象
4.使用网络字节输入流getInputStream对象中的方法read();读取客户端发送的数据
5.使用Socket对象中的方法getOutputStream()获取网络字节输出Ou tputStream对象
6.使用网络字节输出OutputStream对象中的方法write(),给客户端回写数据
7.释放资源(Socket,ServerSocket)
函数式接口:接口中只有一个抽象方法
@FunctionalInterface注解
可以检测接口是否是一个函数式接口
函数式接口作为方法参数,三种使用方式:
1.调用方法,传递接口实现类对象2.使用匿名内部类3.使用Lambda表达式
==============================
==============================
常用函数式接口
1.Supplier<>接口 (生产一个数据) 有返回
抽象方法
get();
用来获取一个泛型参数指定的对象数据,需要Lambda表达式提供一个符合泛型类型的对象数据
================================
2.Consumer<>接口 (消费一个数据) 无返回
抽象方法
accept();消费一个指定泛型的数据
默认方法
andThen();将两个或多个数据组合在一起再消费
===============================
3.Predicate<>接口 (布尔值)
对某种类型数据进行判断 得到一个布尔值
抽象方法
test();用于判断
默认方法
and();并且
or();或者
negate();取反
===============================
4.Function<T,R>接口
用来根据一个类型的数据得到另一个类型的数据
抽象方法
apply(T R);
将T类型转换为R类型
默认方法
andThen();
用来进行组合操作
|
|