《Android版Web服务器实现(一)HTTP协议请求头解析》一文中说到了HTTP协议请求头的解析,那么我们要如何得到这个HTTP请求头呢?我们需要监听端口。监听是一直要运行着的,在Android中比较好的方式就是使用服务。下面是实现的代码。
WebServer.java
package com.sparkle.webservice;
import java.io.IOException;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.WifiManager;
import android.os.IBinder;
import android.util.Log;
import com.sparkle.kits.IP;
public class WebServer extends Service implements Runnable {
private static boolean _isRunning = false;
private static Thread _serverThread = null;
private ServerSocket _listenSocket = null;
private MyLog _myLog = new MyLog(getClass().getName());
private static int _port = Defaults.getPort();
private TcpListener _tcpListener = null;
private static final int WAKE_INTERVAL_MS = 1000;
public WebServer() {
try {
Init();
} catch (IOException e) {
e.printStackTrace();
}
}
private void Init() throws IOException {
_listenSocket = new ServerSocket();
_listenSocket.setReuseAddress(true);
_listenSocket.bind(new InetSocketAddress(_port));
}
public static void Start(Context context) {
if (!_isRunning) {
_isRunning = true;
Intent intent = new Intent(context, WebServer.class);
context.startService(intent);
}
}
p