用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);
}
}