java socket多线程 接收xml
java socket多线程 接收xml
2009-08-21 17:25
这段时间做了个项目,不过觉得一直是我在写,我们总监再改。。看样子自己的代码能力太差了。而且乱七八糟的啦。。
现将代码分享一下吧 :是从客户端接收xml进行一定的解析,然后入库最后返回吧 中间复杂的逻辑就不说了 。。。
SocketServer.java
package com.socket;
import java.io.IOException;
import java.net.*;
import
java.util.concurrent.*;
import com.Config;
import org.apache.log4j.Logger;
public class SocketServer {
Config c = new Config();
private static Logger logger = Logger.getLogger(SocketServer.class);
private ServerSocket serverSocket;
private ExecutorService
executorService;//线程池
private final int POOL_SIZE =
100;//单个CPU线程池大小
public SocketServer() throws IOException {
serverSocket = new ServerSocket(c.port);
//Runtime的availableProcessor()方法返回当前系统的CPU数目.
executorService =
Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() *
POOL_SIZE);
System.out.println("服务器启动");
logger.debug("service start!!");
}
public void service() {
while (true) {
Socket
socket = null;
try {
//接收客户连接,只要客户进行了连接,就会触发accept();从而建立连接
socket =
serverSocket.accept();
&
相关文档:
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
转IBM的文章,比较详细。需要注意的是,
通过JavaCompiler进行编译都是在当前目录下生成.class文件,而使用编译选项可以改变这个默认目录。编译选项是一个元素为String类型的Iterable集合。如我们可以使用如下代码在D盘根目录下生成.class文件。
Iterable options = Arrays.asList("-d", "d:\\");
JavaCompiler. ......
一、反射(Reflect)
反射就是把Java类中的各种成分映射成一个个的java对象。例如,一个类有:成员变量,方法,构造方法,包等等信息,利用反射技术可以对一个类进行解剖,把各个组成部分映射成一个个对象。映射成对象后,就可以调用对象的方法对其操作了。与反射相关的重要的类有Cl ......
Chapter 01
Getting Started
一、核心概念
1.什么叫类?
类就是某一种事物的一般性的集合体,是相同或相似的各个事物共同特性的一种抽象。
2.什么叫对象?
在面向对象概念中,对象(Object)是类的实例(instance)。对象与类的关系就像变量与数据类型的关系一样。
3.类的核心 ......
J2SE部分:
13本经典的Java书,新人必看:
http://www.ibeifeng.com/read.php?tid=846&u=14387
尚学堂马士兵ooa&ood免费
http://www.ibeifeng.com/read-htm-tid-14397.html&u=14387
Java高清PDF书籍大杂烩
http://www.ibeifeng.com/read.php?tid=4580&u=1438 ......