用mina传输文件,图片出现斑点
在消息服务端去掉线程池过滤器即可
import java.io.IOException;
import java.net.InetSocketAddress;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.mina.core.session.IdleStatus;
import org.apache.mina.filter.codec.ProtocolCodecFilter;
import org.apache.mina.filter.logging.LoggingFilter;
import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
import com.gmcc.kuchuan.codec.MessageCodecFactory;
/**
* 消息接收服务器,用于接收消息请求对象。
* @author Administrator
*
*/
public class MessageServer {
//日志对象
private final static Log logger = LogFactory.getLog(MessageServer.class);
//侦听端口
private final static int PORT = 9601;
/**
* 主方法
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// 创建 TCP/IP connector.
NioSocketAcceptor acceptor = new NioSocketAcceptor();
// // 设置线程池过滤器
// acceptor.getFilterChain().addLast("threadpool", new ExecutorFilter(Executors.newCachedThreadPool()));
// 设置日志过滤器
acceptor.getFilterChain().addLast("logger", new LoggingFilter());
// 设置编码过滤器
acceptor.getFilterChain().addLast("codec", new ProtocolCodecFilter(new MessageCodecFactory()));
// 设置读取数据的缓冲区大小
acceptor.getSessionConfig().setReadBufferSize(2048);
// 读写通道10秒内无操作进入空闲状态
acceptor.getSessionConfig().setIdleTime(IdleStatus.BOTH_IDLE, 10);
// 设置文件处理器
acceptor.setHandler(new MessageHandler());
// 设置侦听端口
acceptor.bind(new InetSocketAddress(PORT));
logger.info("Start the message receiver at port " + PORT);
}
}