`
hbhgjiangkun
  • 浏览: 100756 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

一个启动供手机客户端访问服务端的简例

 
阅读更多

package com.jh.jcs.mobile.android.servlet;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import edu.emory.mathcs.backport.java.util.concurrent.ExecutorService;
import edu.emory.mathcs.backport.java.util.concurrent.Executors;

public class AndroidServlet extends HttpServlet {

private static final long serialVersionUID = 1L;

/**
* 日志对象
*/
Log logger = LogFactory.getLog(AndroidServlet.class);

public AndroidServlet(){
super();
}

public void destroy() {
super.destroy();
}

@Override
public void init(ServletConfig config) throws ServletException {
// TODO Auto-generated method stub
super.init(config);
try {
/*Thread startAndroid = new AndroidServerThread();
startAndroid.start();*/

//jiangkun 改为多端口监听
new AndroidServerThread();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

---------------------------------------------------------------------------------------------------------------------------------------------------------------

package com.jh.jcs.mobile.android.servlet;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.jh.jcs.framework.utils.ResourceServiceConfig;

import edu.emory.mathcs.backport.java.util.concurrent.ExecutorService;
import edu.emory.mathcs.backport.java.util.concurrent.Executors;

public class AndroidServerThread{

Log logger = LogFactory.getLog(AndroidServerThread.class);

//private int port=8831;
private ExecutorService executorService;//线程池
private final int POOL_SIZE=10;//单个CPU线程池大小

public AndroidServerThread() throws IOException{
int port1 = Integer.parseInt(ResourceServiceConfig.getProperties().getProperty("android_port1"));
int port2 = Integer.parseInt(ResourceServiceConfig.getProperties().getProperty("android_port2"));
new download(port1).start();
new download(port2).start();
//serverSocket = new ServerSocket(port);

//Runtime的availableProcessor()方法返回当前系统的CPU数目.
executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()*POOL_SIZE);
logger.info("Android服务启动!");
}
class download extends Thread{

private ServerSocket serverSocket;
private int port;
public download(int port) {
// TODO Auto-generated constructor stub
this.port = port;
try {
serverSocket = new ServerSocket(port);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void run() {
while(true){
Socket socket=null;
try {
socket = serverSocket.accept();
//接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接
socket.setSoTimeout(2000);
logger.info("客户发来请求!");
int port1 = Integer.parseInt(ResourceServiceConfig.getProperties().getProperty("android_port1"));
if (serverSocket.getLocalPort()==port1) {
executorService.execute(new HandlerHelper(socket));
} else {
executorService.execute(new UploadHelper(socket));
}

} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}

}

}

分享到:
评论

相关推荐

    蓝牙客户端和服务端

    例如,假设我们有一个蓝牙健康监测服务,它可能包含心率特性,这个特性会定期发送用户的心率数据。客户端可以通过连接到服务端,订阅这个心率特性,从而实时获取心率数据。 在压缩包文件"BluetoothGet"中,可能包含...

    QQ客户端和服务端下载

    QQ客户端和服务端下载QQ客户端和服务端下载QQ客户端和服务端下载QQ客户端和服务端下载QQ客户端和服务端下载QQ客户端和服务端下载QQ客户端和服务端下载QQ客户端和服务端下载QQ客户端和服务端下载QQ客户端和服务端下载...

    基于C++&Qt实现的在线点餐系统(客户端+服务端).zip

    基于C++&Qt实现的在线点餐系统(客户端+服务端——.zip 基于C++&Qt实现的在线点餐系统(客户端+服务端——.zip 基于C++&Qt实现的在线点餐系统(客户端+服务端——.zip 基于C++&Qt实现的在线点餐系统(客户端+服务端...

    客户端-服务端 分离。。

    在“ChangHongCS”这个项目中,我们可以推测这是一个关于客户端-服务端分离的简易模板,可能是为了快速搭建一个基础的CS架构。由于描述中提到可能技术欠缺,这可能意味着开发者在实现这个模板时可能遇到了一些挑战,...

    C# TCPIP一客户端多服务端模式

    基于socket的TCPIP通讯,C#开发,有客户端及服务端,具备多服务端单客户端运行模式,演示demo

    ice客户端和服务端

    标题中的“ice客户端和服务端”指的是ZeroC的ICE(Internet Communications Engine)框架,这是一个高性能、跨平台的中间件,用于构建分布式系统。ICE提供了一种面向对象的接口,支持多种编程语言,包括C++、Java、...

    多客户端和服务端通讯

    服务端需要维护一个客户端列表,当新客户端连接时,将新客户端的信息添加到列表中,并将上线消息发送给其他客户端。 群聊功能的实现,需要服务端能够接收来自任何客户端的消息,并将这些消息广播给所有在线的客户端...

    客户端与服务端通信

    在IT行业中,客户端与服务端通信是网络应用的基础,它涉及到如何通过网络连接将数据从一个应用程序(客户端)传输到另一个应用程序(服务端),再返回响应。在这个过程中,安全性是至关重要的,特别是在处理用户敏感...

    java ftp客户端,服务端

    此外,Java还提供了一个名为`org.apache.commons.net.ftp`的第三方库,它简化了FTP客户端和服务端的开发。这个库包含了FTPClient和FTPServer类,提供了许多预定义的方法来处理FTP操作,如登录、上传、下载、删除文件...

    tcp客户端与服务端

    - 在`OnAccept`函数中,服务端会创建一个新的`CSocket`对象来处理新连接,并调用`Accept`方法接受连接。 - 接收到客户端数据后,服务端可以调用`Receive`方法读取数据,然后根据业务逻辑处理这些数据,最后使用`...

    java实现的opc ua 客户端/服务端的简单例子

    - 另一个类用于启动和管理OPC UA服务端,包含数据节点的定义和数据更新逻辑。 - 连接、断开、读取和写入数据的示例代码,展示如何进行客户端操作。 - 可能还包含了一些配置文件,用于设置服务器的地址、端口和安全...

    C++ 客户端与服务端通信

    `m_sysTcpBuffer`是一个用于读取TCP缓冲区的对象,而`m_ServerListSocket`则是一个`TcpListener`对象,用于监听服务端的连接请求。 #### 初始化与清理 在构造函数`MainForm(void)`中,进行了一系列初始化工作,...

    android蓝牙通信(分为客户端,服务端)

    本示例将详细讲解如何在Android上构建一个蓝牙通信系统,包括客户端和服务端的实现。 首先,理解蓝牙通信的基本概念是必要的。蓝牙是一种短距离无线通信技术,允许电子设备之间交换数据或建立连接,例如手机、电脑...

    客户端服务端数据传输源码

    客户端服务端数据传输源码客户端服务端数据传输源码客户端服务端数据传输源码客户端服务端数据传输源码客户端服务端数据传输源码客户端服务端数据传输源码客户端服务端数据传输源码客户端服务端数据传输源码客户端...

    AIDL实现客户端和服务端的双向通信

    现在,服务端可以在`login()`方法中创建一个`LoginResult`对象,并在完成后通过`loginFinished()`方法将其传递回客户端: ```java @Override public void loginFinished(LoginResult result) { // 将result对象...

    IAP烧录上位机软件,QT 编写,原创,亲测可以用 集成TCP 客户端和服务端 UDP 客户端与服务端,串口 等调试工具,

    IAP烧录上位机软件,QT 编写,原创,亲测可以用 集成TCP 客户端和服务端 UDP 客户端与服务端,串口 等调试工具, 史上最强调试烧录工具,原创 具体查看...rank_ecpm_v1~rank_v31_ecpm-1-126893194-null-null.142^v50^...

    Android购物商城App+客户端+服务端+数据库

    本文将深入探讨一个完整的Android购物商城系统,包括客户端、服务端和数据库的构建,旨在帮助开发者理解和掌握这一领域的核心知识点。 一、客户端开发 1. 用户界面(UI)设计:购物商城App的UI设计需注重用户体验...

    javaSocket客户端与服务端

    - **多线程**:为了同时处理多个客户端的连接,服务端通常会为每个新连接创建一个新的线程。这样,服务端可以同时处理多个并发连接。 - **数据编码与解码**:在传输数据时,可能需要将数据转换为字节流或字符流,这...

    基于C++实现一个简单的QT文件传输系统包含客户端和服务端源码.zip

    基于C++实现一个简单的QT文件传输系统包含客户端和服务端源码.zip 基于C++实现一个简单的QT文件传输系统包含客户端和服务端源码.zip 基于C++实现一个简单的QT文件传输系统包含客户端和服务端源码.zip 基于C++实现一...

    客户端和服务端源代码

    跨平台开发也是现代客户端开发的一个重要方面,开发者可能需要编写能够在不同操作系统和设备上运行的代码,这通常涉及到React Native、Flutter等跨平台框架的使用。 在服务端,后端框架的选择也至关重要,如Node.js...

Global site tag (gtag.js) - Google Analytics