java-网络服务
概念:一个业务功能 变成可以通过网络跨机请求
举例:机器1有一个传2个整数返回两数之和的功能 机器2可以通过网络请求机器1 获取该功能 ,机器1通过网络返回值给机器2
应用场景:机器1封装的功能代码为科技公司核心技术 不可对外提供源代码. 其他机器通过网络请求调用该功能 获取想要的结果 但是不知道原始程序如何实现
开发流程:
1:编程启动程序
1.1:创建网络连接 severSocket 设置端口号
(端口注解:主机向操作系统申请的一个身份标识 以便其他机器请求主机时可以找到对应的应用程序)
1.2:设置网络监听 socket.accept
1.3:监听到请求用getInputStream接收
客户端传输的请求数据 要符合主机的传输协议
Byte byte=new Byte[1024]
in.read(byte)
接收到请求数据 之后 读取到byte数组中
按照协议规则拿到请求中需要的字段 之后执行业务逻辑
1.4 :执行结果 通过getOutputStream回传给客户端
out.write(执行结果)
2:编写客户端程序
创建socket对象 指定要访问的机器的ip地址和 程序端口号
用socket对象的getOutputStream方法把要传入的数据write进来
用getInputStream方法接收返回数据 做解析处理
这就是一个完整的Rpc请求服务
2:网络web请求的解决方案:
1:web通过浏览器请求主机
请求与返回数据有固定格式 可自行百度
如主机既要对内提供RPC服务 又要对外提供web服务则需要多线程访问 设置两个端口号