⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serialencoder.java

📁 银行项目为后台socket通信写的程序
💻 JAVA
字号:
/****************************************************************************
 * Package		: com.ecSolutions.ecAppServer.server.encoder
 * File			: SerialEncoder.java
 * Create Date  : 2007-7-20
 * Author		: Steven Chen
 * 
 * Copyright(C) 2006 ecSolutions(shanghai) Co.,Limited.All Rights Reserved.
 *			
 ***************************************************************************/
package com.ecSolutions.ecAppServer.server.encoder;

import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.io.Serializable;
import java.nio.ByteBuffer;

import com.ecSolutions.ecAppServer.server.Packet;
import com.ecSolutions.ecAppServer.server.PacketEncoder;
import com.ecSolutions.ecAppServer.server.Session;
import com.ecSolutions.ecAppServer.server.buffer.BufferBuilder;
import com.ecSolutions.ecAppServer.server.packet.DefaultPacket;

/**
 * Encode serial object to <code>Packet</code>.
 * 
 * @author Steven Chen
 * @version $Id: SerialEncoder.java,v 1.2 2007/07/26 03:19:40 stevenchen Exp $
 */
public class SerialEncoder implements PacketEncoder {

    public Packet encode(Session session, Object obj) throws Exception {
        if (obj instanceof Serializable) {
            final BufferBuilder builder = new BufferBuilder();
            try {
                ObjectOutputStream oos = new ObjectOutputStream(
                        new OutputStream() {

                            public void write(int b) {
                                builder.append((byte) b);
                            }

                            public void write(byte[] b, int off, int len) {
                                builder.append(ByteBuffer.wrap(b, off, len));
                            }
                        });
                oos.writeUnshared(obj);
                oos.close();
                return new DefaultPacket(builder.toBuffer());
            } finally {
                builder.release();
            }
        }
        return null;

    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -