A bare minimum web server for android platform
2011-08-31 15:23
363 查看
随着现在的移动电话有了更强的计算能力,运行在移动电话上的web服务器也有了更强的功能。虽然已经有了很多Android Web服务器的应用,但是我还是决定要写一个自己的。我们能够使用org.apache.http包来创建HTTP服务器,唯一要注意的是,我们不能用一些默认的端口,例如80端口。我想这应该是Linux的限制,与Android 平台无关。
为了建立一个典型的Web服务器,你首先要做的是创建一个server socket用来监听端口以及接受连接,最后还要处理HTTP请求并向客户端发送响应。
我们使用 java.net.ServerSocket这个类来创建Server Socket。这个类的构造函数接受一个用来监听外来连接的端口号。一旦ServerSocket对像建立起来了,我们就可以用ServerSocket.accept()方法来接受外来的连接。由于这个方法是个阻塞方法,因此,我们要单独创建一个线程来接收和处理外来连接。accept() 方法返回一个java.net.Socket对象来代表接收到的连接。一旦连接建立,接下来我们要做的就是处理HTTP请求了。对此,我们可以使用org.apache.http.protocol.HttpService这个类。这个类提供了一个简单的HTTP处理器服务端的实现。下面的是HttpService的构造方法:
第一个参数org.apache.http.protocol.HttpProcessor是处理请求和响应的一个接口。org.apache.http.protocol.BasicHttpProcessor是对这个接口的默认实现。
第二个参数org.apache.http.ConnectionReuseStrategy决定了对连接的重用策略。针对这个接口有两种不同的实现,org.apache.http.impl.DefaultConnectionReuseStrategy和 org.apache.http.impl.NoConnectionReuseStrategy。
第一个对连接进行复用,第二个不复用连接,一般情况下,我们实用第一个。
HttpService依靠最后一个参数去处理和发送HTTP响应。org.apache.http.HttpResponseFactory是一个工厂形式的接口,用来处理和发送到客户端的响应。org.apache.http.impl.DefaultHttpResponseFactory这个类是对这个接口的默认实现。
为了处理不同类型的HTTP请求,我们使用一个基于URI模式的处理映射。
为了建立一个典型的Web服务器,你首先要做的是创建一个server socket用来监听端口以及接受连接,最后还要处理HTTP请求并向客户端发送响应。
我们使用 java.net.ServerSocket这个类来创建Server Socket。这个类的构造函数接受一个用来监听外来连接的端口号。一旦ServerSocket对像建立起来了,我们就可以用ServerSocket.accept()方法来接受外来的连接。由于这个方法是个阻塞方法,因此,我们要单独创建一个线程来接收和处理外来连接。accept() 方法返回一个java.net.Socket对象来代表接收到的连接。一旦连接建立,接下来我们要做的就是处理HTTP请求了。对此,我们可以使用org.apache.http.protocol.HttpService这个类。这个类提供了一个简单的HTTP处理器服务端的实现。下面的是HttpService的构造方法:
HttpService( HttpProcessor proc, ConnectionReuseStrategy connStrategy, HttpResponseFactory responseFactory)
第一个参数org.apache.http.protocol.HttpProcessor是处理请求和响应的一个接口。org.apache.http.protocol.BasicHttpProcessor是对这个接口的默认实现。
第二个参数org.apache.http.ConnectionReuseStrategy决定了对连接的重用策略。针对这个接口有两种不同的实现,org.apache.http.impl.DefaultConnectionReuseStrategy和 org.apache.http.impl.NoConnectionReuseStrategy。
第一个对连接进行复用,第二个不复用连接,一般情况下,我们实用第一个。
HttpService依靠最后一个参数去处理和发送HTTP响应。org.apache.http.HttpResponseFactory是一个工厂形式的接口,用来处理和发送到客户端的响应。org.apache.http.impl.DefaultHttpResponseFactory这个类是对这个接口的默认实现。
为了处理不同类型的HTTP请求,我们使用一个基于URI模式的处理映射。
相关文章推荐
- gradle 构建 Smack 报错:Can't find android.jar for 8 API. + steps for building android platform
- 【实例图文详解】OAuth 2.0 for Web Server Applications
- SQL Server Connection Strings for ASP.NET Web Applications
- set up the Eclipse IDE for Android platform development
- Android中如何搭建一个WebServer
- Android与web服务器数据交互编程---2-如何实现手机与web的通信---server实现
- Microsoft Platform SDK for Windows Server 2003 R2与VC6的结合使用
- xamarin for android webservice
- android webview Cannot call determinedVisibility() - never saw a connection for the pid:
- Lync 项目经验-34-分配公网证书 For Office Web App Server 2013
- Do I need the Application Server role for a web server?
- HTML5: The New Minimum for Mobile Web Devices
- Android中如何搭建一个WebServer
- Google OAuth2 for Android(type of web OAuth)
- Developing Web Application for Weblogic Server
- supermap iclient for android iserver服务查询
- android webserver ijetty
- (OK) Android 5 SystemServer 各个系统Manager-startBootPhase(SystemService.PHASE_WAIT_FOR_DEFAULT_DISPLAY)
- xorg-server-1.12.1 for android done--xorg-server-1.12.1-issue.txt
- webkit for android 4.0 by mogoweb base off Jelly