前端之家收集整理的这篇文章主要介绍了
WebService入门,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
转载:http://blog.csdn.net/opopopwqwqwq/article/details/51758862
Webservice:跨语言跨平台的远程调用技术
WebService定义: 顾名思义就是基于Web的服务。它使用Web(HTTP)方式,接收和响应外部系统的某种请求。从而实现远程调用。
Webservice理解:我们可以调用互联网上查询天气信息Web服务,然后将它嵌入到我们的程序(C/S或B/S程序)当中来,当用户从我们的网点看到天气信息时,他会认为我们为他提供了很多的信息服务,但其实我们什么也没有做,只是简单了调用了一下服务器上的一段代码而已。WebSerice可以将你的服务(一段代码)发布到互联网上让别人去调用,也可以调用别人机器上发布的WebService,就像使用自己的代码一样.。
1 远程调用的案例(模拟远程调用天气预报服务)
便民查询网站的分析

天气信息必须通过远程调用的方式获得。
远程调用的方法
1.1.1 Socket实现远程调用

1.1.1.1 实现步骤:
服务端:
第一步:创建一个Java工程
第二步:使用ServerSocket创建一个服务。需要指定服务的端口号。
第三步:调用accept()方法等待客户端建立连接。
第四步:建立连接后使用输入流读取客户端发送的城市名称
第五步:查询天气信息。模拟。
第六步:使用输出流返回天气信息。
第七步:关闭输入输出流。服务端不关闭连接,等待客户端关闭。
客户端:
第一步:创建一个java工程
第二步:使用Socket类和服务端建立连接。需要指定ip和端口。
第三步:使用输出流发送城市名称
第四步:使用输入流读取服务端返回的结果
第五步:打印结果。
1.1.1.2 代码实现
开发环境:要求jdk1.7以上
开发工具:eclipse indigo
服务端
- public class WeatherServer {
-
- static void main(String[] args) {
-
- try {
-
-
- ServerSocket serverSocket = new ServerSocket(12345);
- System.out.println("服务端已启动。。。。。");
- while(true) {
-
-
- final Socket socket = serverSocket.accept();
- Runnable runnable = new Runnable() {
-
- @Override
- void run() {
- DataInputStream inputStream = null;
- DataOutputStream outputStream = null;
- try {
-
- inputStream = new DataInputStream(socket.getInputStream());
- String cityName = inputStream.readUTF();
- System.out.println("接收到客户端发送的数据:" + cityName);
- // 根据城市查询天气
- System.out.println("查询天气。。。。");
- Thread.sleep(1000);
- String resultString = "阴天转雷阵雨";
- outputStream = new DataOutputStream(socket.getOutputStream());
-
- System.out.println("返回查询结果:" + resultString);
- outputStream.writeUTF(resultString);
- } catch (Exception e) {
-
- }finally {
- // 关闭流
- @H_203_404@ inputStream.close();
- outputStream.close();
- } catch (IOException e) {
-
- e.printStackTrace();
- }
- }
-
- }
- };
- //启动线程
- new Thread(runnable).start();
- }
- } }
- }
- }
客户端
copy