Android版Web服务器实现(二)使用服务来监听HTTP请求

本文介绍了在Android中使用服务(Service)和线程(Thread)来监听HTTP请求的方法。通过WebServer.java类,继承Service并实现Runnable接口,重写onStartCommand和onDestroy方法来启动和关闭监听线程。TcpListener类负责实际的监听操作,当接收到请求时,通过SessionThread进行处理。AndroidManifest.xml中需注册服务。文章还提到了自定义的日志类MyLog用于调试。下篇将讲述如何处理监听到的HTTP请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值