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();
&
相关文档:
一:准备 www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
1. build vserv-tcpip-0.9.2-src
在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......
转IBM的文章,比较详细。需要注意的是,
通过JavaCompiler进行编译都是在当前目录下生成.class文件,而使用编译选项可以改变这个默认目录。编译选项是一个元素为String类型的Iterable集合。如我们可以使用如下代码在D盘根目录下生成.class文件。
Iterable options = Arrays.asList("-d", "d:\\");
JavaCompiler. ......
javabean+数组优点:
1、简单:java程序中最简单的类莫过于javabean,javabean有一套成熟的规范,易于编写
2、方便:javabean是数据的载体,既可以通过set和get方式来操作数据,又可以象使用数组一样来操作javabean
3、通用:通过下标来操作javabean,你所写的代码将是通用的,可移植的。你所写的功能组件将适用于所有的 ......
例如:一个字符串:123fsf夺
改后要为:1%2%3%f%s%f%夺
代码如下
String a="123fsf夺";
char[] b=a.toCharArray();//字符串拆分成字符
&n ......
final在Java中并不常用,然而它却为我们提供了诸如在C语言中定义常量的功能,不仅如此,final还可以让你控制你的成员、方法或者是一个类是否可被覆写或继承等功能,这些特点使final在Java中拥有了一个不可或缺的地位,也是学习Java时必须要知道和掌握的关键字之一。
final成员
当你在类中定义变量时,在其前面加上fi ......