加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

WebService基础学习(一)—基础知识

发布时间:2020-12-16 21:47:41 所属栏目:安全 来源:网络整理
导读:转自http://www.cnblogs.com/yangang2013/p/5708647.html 一、WebService 1.什么是WebService ???? Web Service(WEB服务)能够快捷和方便地综合结合各种系统、商务和任何应用平台。利用最新的Web Service 标准能够使任何软件系统和系统之间的应用互通互联,方

转自http://www.cnblogs.com/yangang2013/p/5708647.html

一、WebService

1.什么是WebService

???? Web Service(WEB服务)能够快捷和方便地综合结合各种系统、商务和任何应用平台。利用最新的Web Service 标准能够使任何软件系统和系统之间的应用互通互联,方便,而且更加廉价。

?

2.WebService的应用场合

(1)跨越防火墙通信

?????客户端和服务器端之间通信都会有防火墙或者代理服务器。传统的实现互相通信的方法是在分布式对象,如DCOM、CORBA之间进行相互的远程过程调用(TCP/IP),但在这种场合下HTTP协议的特性没有得到应用,因此在Internet环境下的远程过程调用不是一件容易的事情,同时在Internet上使用远程过程调用还存在安全问题,防火墙和代理服务器还有可能阻挡这种类型的数据传输。HTTP是在Internet上发送消息的标准协议。Web服务使用基于XML消息处理作为基本的数据通信方式,应用程序可以使用HTTP和XML消息等标准在基于Web的应用程序之间交换信息,从而跨越防火墙。

?

(2)应用程序集成

???? 企业里经常要把不同语言写成的在不同平台上运行的各种程序集成起来。大型公司常常有很多部门,每个部门都使用最适合自己特定需要的应用程序和平台。为了能够让公司各部门之间进行通信,首先应该将公司内部的应用程序和商业过程集成在一起。Web服务的开放标准使组织创建可重用的应用程序接口。当被包装成一个或一组Web服务之后,任何应用程序理论上都可以通过SOAP消息与任何其他应用程序进行通信。

(3)软件复用

???? 软件复用是在软件开发中避免重复劳动的解决方案。Web服务实现了业务级别的软件复用,例如在B2B的集成中,各企业之间通过互相调用Web服务,实现了Web服务的共享,Web服务的使用企业不需要再重新开发其他企业中已经存在的服务。

?

二、使用Socket远程通信

?????

1.客户端

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public? class? WeatherClient{
?
???? static? void? main(String[] args) throws? UnknownHostException,IOException{
?????????
//1.创建Socket对象,和服务端建立连接
???????? Socket socket = new? Socket( "127.0.0.1" , 12345 );
//2.发送城市名称
DataOutputStream(socket.getOutputStream());
dos.writeUTF( "北京" );
"请求查询天气: 北京" );
?????????
DataInputStream dis = DataInputStream(socket.getInputStream());
"北京的天气: "? + result);
//4.关闭流
dos.close();
}
}

2.服务端

/*
? * 天气服务端
WeatherServer{
?
IOException{
?
// 1.创建ServerSocket对象
ServerSocket( );
?
while ( true ){
?
// 2.等待客户端连接,阻塞的方法
???????????? final? Socket socket = serverSocket.accept();
???????????? Runnable runnable = Runnable(){
@Override
???????????????? run(){
try {
???????????????????????? // 3.使用输入流接受客户端发送的请求
DataInputStream(socket.getInputStream());
String cityName = dis.readUTF();
? + cityName);
?????????????????????????
1000 );
?????????????????????????
String result = "今天天气很热" ;
? + result);
?
DataOutputStream(socket.getOutputStream());
?
dis.close();
???????????????????? } catch (Exception e){
}
}
};
//启动线程
?????????????
}