1 package com.weijia.tests; 2 3 import java.io.IOException; 4 import java.net.InetSocketAddress; 5 import java.net.ServerSocket; 6 import java.net.Socket; 7 import java.util.concurrent.Executor; 8 9 import org.apache.http.HttpException; 10 import org.apache.http.HttpRequest; 11 import org.apache.http.HttpResponse; 12 import org.apache.http.HttpResponseInterceptor; 13 import org.apache.http.impl.DefaultConnectionReuseStrategy; 14 import org.apache.http.impl.DefaultHttpResponseFactory; 15 import org.apache.http.impl.DefaultHttpServerConnection; 16 import org.apache.http.params.BasicHttpParams; 17 import org.apache.http.params.CoreConnectionPNames; 18 import org.apache.http.params.CoreProtocolPNames; 19 import org.apache.http.params.HttpParams; 20 import org.apache.http.protocol.HttpContext; 21 import org.apache.http.protocol.HttpProcessor; 22 import org.apache.http.protocol.HttpRequestHandler; 23 import org.apache.http.protocol.HttpRequestHandlerRegistry; 24 import org.apache.http.protocol.HttpService; 25 import org.apache.http.protocol.ImmutableHttpProcessor; 26 import org.apache.http.protocol.ResponseConnControl; 27 import org.apache.http.protocol.ResponseContent; 28 import org.apache.http.protocol.ResponseDate; 29 import org.apache.http.protocol.ResponseServer; 30 31 import com.example.cairh_sjkh_it.R; 32 33 import android.app.Activity; 34 import android.content.Intent; 35 import android.os.Bundle; 36 import android.widget.Toast; 37 38 import com.sun.net.httpserver.HttpHandler; 39 import com.sun.net.httpserver.HttpServer; 40 41 public class MainActivity extends Activity { 42 ServerSocket serverSocket; 43 @Override 44 protected void onCreate(Bundle savedInstanceState) { 45 super.onCreate(savedInstanceState); 46 setContentView(R.layout.res); 47 // startService(new Intent(this, SocketService.class)); 48 try { 49 serverSocket=new ServerSocket(8080); 50 } catch (IOException e) { 51 // TODO Auto-generated catch block 52 e.printStackTrace(); 53 } 54 HttpParams params = new BasicHttpParams(); 55 params 56 .setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 5000) 57 .setIntParameter(CoreConnectionPNames.SOCKET_BUFFER_SIZE,8 * 1024) 58 .setBooleanParameter(CoreConnectionPNames.STALE_CONNECTION_CHECK, false) 59 .setBooleanParameter(CoreConnectionPNames.TCP_NODELAY, true) 60 .setParameter(CoreProtocolPNames.ORIGIN_SERVER,"HttpComponents/1.1"); 61 62 HttpProcessor httpproc = new ImmutableHttpProcessor( 63 new HttpResponseInterceptor[] { 64 new ResponseDate(), new ResponseServer(), 65 new ResponseContent(), new ResponseConnControl() }); 66 HttpService httpService=new HttpService(httpproc, 67 new DefaultConnectionReuseStrategy(), 68 new DefaultHttpResponseFactory()); 69 httpService.setParams(params); 70 // 创建HTTP请求执行器注册表 71 HttpRequestHandlerRegistry reqistry = new HttpRequestHandlerRegistry(); 72 // 增加HTTP请求执行器 73 reqistry.register("*" , new HttpRequestHandler() { 74 @Override 75 public void handle(HttpRequest httprequest, HttpResponse httpresponse, 76 HttpContext httpcontext) throws HttpException, IOException { 77 Toast.makeText(MainActivity.this, "good", Toast.LENGTH_LONG); 78 } 79 }); 80 // 设置HTTP请求执行器 81 httpService.setHandlerResolver(reqistry); 82 new Thread(runnable).start(); 83 // Socket socket=new Socket(); 84 // socket.bind(new InetSocketAddress(port)) 85 } 86 Runnable runnable=new Runnable() { 87 88 @Override 89 public void run() { 90 // TODO Auto-generated method stub 91 /* 循环接收各客户端 */ 92 boolean isLoop = true; 93 while (isLoop && !Thread.interrupted()) { 94 // 接收客户端套接字 95 try { 96 Socket socket = serverSocket.accept(); 97 } catch (IOException e) { 98 // TODO Auto-generated catch block 99 e.printStackTrace(); 100 } 101 // 绑定至服务器端HTTP连接 102 //DefaultHttpServerConnection conn = new DefaultHttpServerConnection(); 103 //conn.bind(socket, params); 104 // 派送至WorkerThread处理请求 105 //Thread t = new WorkerThread(httpService, conn); 106 //t.setDaemon(true); // 设为守护线程 107 //t.start(); 108 } 109 } 110 }; 111 }
时间: 2024-10-05 14:58:06