`
csevan
  • 浏览: 61762 次
  • 性别: Icon_minigender_1
  • 来自: 长沙市
文章分类
社区版块
存档分类
最新评论

通过URLConnection进行远程连接(教程)

阅读更多

通过URLConnection进行远程连接(教程)

这个例子很简单,就两个文件哦:)
服务器端文件:DemoService
客户端文件:DemoTestHttpURLConnection

废话不多说,很简单服务器文件是个标准的HttpServlet文件!

代码:

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class DemoService extends HttpServlet...{
    
private static final long serialVersionUID = 1589233260870765446L;

    @Override
    
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            
throws ServletException, IOException ...{
        
this.doPost(req, resp);
    }


    @Override
    
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
            
throws ServletException, IOException ...{
        
        
// 从请求中获取客户端传入的流信息
        ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(req.getInputStream()));
        
try ...{
            
// 获取客户端传来的信息对象        
            System.out.println((String)in.readObject());            
            in.close();
            
            
// 将信息返回给客户端
            ObjectOutputStream out = new ObjectOutputStream(resp.getOutputStream());
            out.flush();
            
            
// 将信息对象传给客户端 
            out.writeObject("给客户端返回的结果,就是我啦!");
            out.close();
            
        }
 catch (Exception e) ...{
            e.printStackTrace();
        }

        
    }

    
}

 

客户端程序更简单啦,就是个简单的测试类

代码:

import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;

public class DemoTestHttpURLConnection ...{
    
public static void main(String[] args) throws Exception ...{
        
        
// 传给对方参数,也可以是对象(此处的对象必须是可序列化的对象)
        String sMessage = "客户端传入到服务区点数据了!" + DemoTestHttpURLConnection.class.getName();
        
        
// 服务器地址
        URL url = new URL("http://127.0.0.1:8088/ServletServiceDemo/demoService");
        
        
// 打开地址
        URLConnection con = url.openConnection();
        
        
// 指示应用程序要从 URL 连接读取数据
        con.setDoInput(true);
        
        
// 指示应用程序要将数据写入 URL 连接
        con.setDoOutput(true);
        
        
// 设置一般请求属性 (不设置也没什么关系 :)
        con.setRequestProperty("Content-type""application/octest-stream");
                
        
// 从Url连接中获取输出流 (即:将该流传给服务器)
        OutputStream out = con.getOutputStream();        
        ObjectOutputStream objStream 
= new ObjectOutputStream(out);
        
        
// 将之前设置的好的对象传入给服务器
        objStream.writeObject(sMessage);
        objStream.flush();
        objStream.close();
        out.close();
                
        
// 从Url连接中获取输入流信息 (即:服务器的输出流信息)
        InputStream in = con.getInputStream();        
        ObjectInputStream back 
= new ObjectInputStream(in);
        
        
// 得到服务器对象信息!
        System.out.println((String)back.readObject());
        
        back.close();
        in.close();
    }

}

 

偶们先部署服务器(到处都有文章不废话了),然后再运行测试类。看到什么了?呵呵

简单吧!!!

分享到:
评论

相关推荐

    本地java实现远程oracle备份还原

    本教程将详细阐述如何使用Java编程语言实现远程Oracle数据库的备份与还原功能,尤其适用于两台不在同一IP段的服务器之间操作。 首先,我们需要理解Oracle数据库备份的基本概念。备份是为了防止数据丢失,通常分为...

    Java高级教程课件 java数据库教程 JDBC教程 7-java-net(2)网络编程(共25页).pptx

    `URL`类提供了访问互联网资源的方法,而`URLConnection`是抽象类,封装了URL表示的Web对象的连接,提供了获取远程资源信息的方法,如内容类型、最后修改时间、内容长度等。在进行URL编码和解码时,`URLEncoder`和`...

    网络与数据库编程基础经典教程.pptx

    6. 网络编程实现:在Java中,通过`URL`类来表示网络资源的统一地址,使用`URLConnection`建立与服务器的连接。一旦连接建立,可以创建输入/输出流对象来读写数据。例如,`InputStreamReader`和`BufferedReader`可以...

    网络连接及单线程多线程下载示例

    本教程将详细讲解网络连接的各种方法,并对比分析单线程和多线程下载的差异。 首先,我们来看网络连接。在Java中,有两种主要的HTTP连接方式:HttpURLConnection和普通的URLConnection。HttpURLConnection是Java ...

    java网络教程

    Socket编程是网络通信的基础,通过创建Socket实例,我们可以建立到远程服务器的连接,进行数据的双向传输。ServerSocket则用于监听特定端口上的连接请求。 其次,J2EE(Java 2 Platform, Enterprise Edition)是...

    Java 程序设计实训教程

    7. **网络编程**: Java提供了丰富的API进行网络编程,如Socket和ServerSocket类用于创建客户端和服务端的连接,以及URL和URLConnection类用于访问和操作网络资源。掌握网络编程能让你创建能够与远程服务器交互的应用...

    Basic4android网络通信程序

    网络通信是指通过互联网或局域网进行的数据交换,这通常涉及到发送请求到服务器并接收响应的过程。在Android应用中,这通常是通过HTTP或HTTPS协议完成的,例如使用GET或POST方法。 在B4A中,网络通信主要依赖于内置...

    JAVA教程

    Java提供了丰富的API,如`Socket`和`ServerSocket`类,用于创建TCP连接,以及`URL`和`URLConnection`类用于HTTP通信。这使得Java应用程序能够轻松地进行网络数据交换和通信。 “9 JavaRMI.ppt”讲解了Java远程方法...

    Java语言程序设计案例教程.ppt

    你可以创建 `URL` 对象,然后通过 `openConnection()` 方法获取 `URLConnection`,进一步进行读写操作。`URL` 类还提供了解析、比较和格式化 URL 的方法。 3. **Socket 编程**: `java.net.Socket` 类代表网络上的...

    android通过Service进行文件下载,后台下载

    首先,创建一个网络连接,然后通过输入流读取远程文件,再通过输出流写入本地文件。 ```java URL url = new URL(downloadUrl); URLConnection connection = url.openConnection(); InputStream in = connection....

    Android基础 网络通信

    - 文件下载通常通过输入流读取远程资源,然后将其写入本地文件。 7. **Android中的网络监听**: - 监听短信和读取联系人涉及到其他的Android权限,例如`READ_SMS`和`READ_CONTACTS`。 - 监听短信可以注册...

    java技术教程(例子).rar_applet_java Applet_java swing_swing

    通过这些工具,开发者可以创建能够连接到远程服务器、发送数据和接收响应的应用。 5. **实例代码**:在“java技术教程(例子)”中,可能包含了上述技术的实际代码示例,这些示例可以帮助学习者更好地理解和应用这些...

    20254Java程序设计之网络编程(第2版

    网络编程使得Java应用程序能够通过网络进行通信,实现数据交换和远程服务调用。以下是对这个主题的详细讲解: 1. **Java网络编程基础**: Java提供了丰富的API来支持网络编程,主要在`java.net`包下。其中包括...

    Java网络编程实例

    在本教程中,我们将深入探讨Java如何进行网络编程,主要围绕"访问网络资源实例"和"Applet编程实例"这两个主题展开。 首先,让我们来看看“访问网络资源实例”。在Java中,我们可以使用java.net包提供的类来实现这一...

    Java从网络取得文件.zip

    `openConnection()`方法用于建立与URL所表示的远程对象的连接。 3. **设置请求属性:** 在下载文件前,可能需要设置请求头,例如设置`User-Agent`或`Accept-Encoding`,这有助于服务器识别请求来源和处理方式。 ...

    url.zip_Java URL实现文件下载

    在Java中,我们可以使用`java.net.URL`和`java.net.URLConnection`类来建立与远程服务器的连接,并读取数据。以下是一个简单的文件下载示例: ```java import java.io.InputStream; import java.io.OutputStream; ...

    java调用WebService(客户端)整理.pdf

    在Java开发中,与远程服务进行交互是常见的需求,而WebService作为跨平台、跨语言的通信方式,被广泛应用于分布式系统。本篇将重点介绍如何使用Java作为客户端来调用WebService,包括四种调用方式:HttpGet、...

    精通Java网络编程光盘资料

    【精通Java网络编程光盘资料】是一份涵盖了Java在网络安全、图像处理以及实时通信等多个方面的实践教程。通过这份资料,我们可以深入理解Java在网络编程领域的强大功能,并通过具体实例提升技能。 1. **Java网络...

Global site tag (gtag.js) - Google Analytics