A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

网络编程:
软件结构介绍:
CS: Client客户端, Server服务器
BS: Browser浏览器, Server服务器


网络编程三要素:
1. 通信协议 TCP
2. IP地址
3. 端口号    端口号的取值范围: 0~65535的整数, 其中0~1024不建议使用


TCP通信:
两端通信时步骤:
1. 服务端程序需要先启动, 等待客户端的连接
2. 客户端主动连接服务器端, 连接成功才能通信. 服务端不可以主动连接客户端
3. 服务端(ServerSocket)可以通过 accept() 方法等待一个客户端(Socket)主动连接, 从而得到一个客户端对象(Socket), 来识别不同的客户端

UDP和TCP协议特点
UDP: 用户数据报协议        1. 无连接的不可靠的协议       
                                        2. 数据以包的形式发送, 一个包64K       
                                        3. 速度快效率高, 容易丢包
TCP: 传输控制协议        1. 有连接的可靠协议         
                                2. 直接传输数据没有大小限制       
                                3. 速度慢, 安全性高


ServerSocket  TCP服务端
// 构造方法
ServerSocket(int port): 创建一个TCP服务端, 并监听指定端口
// 成员方法
Socket accept(): 监听数据, 会阻塞. 收到数据后返回Socket对象
void close(): 关闭服务端ServerSocket

Socket  TCP客户端
/ 构造方法
Socket(String ip, int port): 创建TCP客户端对象
// 成员方法
OutputStream getOutputStream(): 获取输出流对象, 用于发送数据
InputStream getInputStream(): 获取输入流, 用于接收数据
void shutdownOutput(): 关闭输出流, 告知服务端数据发送完毕
void close(): 关闭客户端Socket



自定义函数式接口
@FunctionalInterface 注解
作用: 检测接口是否符合函数式接口的要求, 不符合就编译报错
用在哪: 在接口声明的上面
@FunctionalInterface
public interface 接口名{}


Lambda延迟执行的特点
1.当一个方法的参数是一个函数式接口时, 可以使用Lambda表达式传递该参数, 简化匿名内部类的代码
2.当一个方法的返回值是一个函数式接口时, 可以返回Lambda表达式, 简化匿名内部类的代码

常用函数式接口
Supplier<T>: 生产型函数式接口 获取值 a和b的和, 获取数组最: 条件判断型函数式接口 判断值 判断字符串长度是否大于5
Function<T, R>: 转换型函数式接口 转换值 给它一个String转换为Integer "123"->123大值, 获取一个Person象
Consumer<T>: 消费型函数式接口 使用值 给它一个String让他打印, 给它一个对象

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马