国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

初識(shí)java之Mina(一)

2019-11-14 21:03:26
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
初識(shí)java之Mina(一)

Apache Mina Server 是一個(gè)網(wǎng)絡(luò)通信應(yīng)用框架,也就是說(shuō),它主要是對(duì)基于 TCP/ip、UDP/IP協(xié)議棧的通信框架(當(dāng)然,也可以提供 JAVA 對(duì)象的序列化服務(wù)、虛擬機(jī)管道通信服務(wù)等),Mina 可以幫助我們快速開發(fā)高性能、高擴(kuò)展性的網(wǎng)絡(luò)通信應(yīng)用,Mina 提供了事件驅(qū)動(dòng)、異步(Mina 的異步 IO 默認(rèn)使用的是 JAVA NIO 作為底層支持)操作的編程模型。

首先先寫個(gè)簡(jiǎn)單的server,來(lái)實(shí)現(xiàn)異步的文件上傳。

public class Main {PRivate static final int PORT = 8080;public static void main(String[] args) throws Exception {NioSocketAcceptor accept = new NioSocketAcceptor();accept.getFilterChain().addLast("codec",new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));accept.getFilterChain().addLast("logging", new LoggingFilter());accept.setHandler(new FileUploadHandler());accept.bind(new InetSocketAddress(PORT));System.out.println("upload  server started.");}}

handle的處理就狠簡(jiǎn)單了。

public class FileUploadHandler extends IoHandlerAdapter {private BufferedOutputStream out;private int count;private static final Log log = LogFactory.getLog(FileUploadHandler.class);public void sessionOpened(IoSession session) throws Exception {System.out.println("server open");public void exceptionCaught(IoSession session, Throwable cause)throws Exception {System.out.println("exception");session.close(true);super.exceptionCaught(session, cause);}public void messageReceived(IoSession session, Object message) {System.out.println("server received");try {if (message instanceof FileUploadRequest) {FileUploadRequest request = (FileUploadRequest) message;System.out.println(request.getFilename());if (out == null) {String [] array = request.getFilename().split("http://");System.out.println(array[1]);out = new BufferedOutputStream(new FileOutputStream("D://"+array[1]));out.write(request.getFileContent());} else {out.write(request.getFileContent());}count += request.getFileContent().length;} else if (message instanceof String) {if (((String) message).equals("finish")) {System.out.println("size is " + count);out.flush();out.close();out = null;session.write("success");}}} catch (Exception e) {e.printStackTrace();}}public void sessionClosed(IoSession session) throws Exception {System.out.println("server session close");}}

  


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武川县| 双柏县| 固安县| 东方市| 鹤岗市| 兴城市| 皋兰县| 哈尔滨市| 金塔县| 沁水县| 宁晋县| 醴陵市| 边坝县| 黔西县| 五常市| 绥中县| 宝丰县| 马龙县| 当阳市| 昂仁县| 罗山县| 晴隆县| 梁河县| 香河县| 花莲市| 德阳市| 平顶山市| 城步| 沙田区| 宁国市| 嘉义县| 博乐市| 新化县| 平谷区| 大理市| 青州市| 得荣县| 宾川县| 岳池县| 苏州市| 高雄市|