Java 类com.esotericsoftware.kryonet.util.InputStreamSender 实例源码

项目:RavTech    文件:KryonetTransportLayer.java   
@Override
public void sendStreamTo (Object connectionInformation, InputStream stream, int size, String type,
    Object additionalInformation) {

    final int streamId = (int)(Math.random() * Integer.MAX_VALUE);

    Packet.StreamHeader streamHeader = new Packet.StreamHeader();
    streamHeader.additionalInfo = additionalInformation;
    streamHeader.streamId = streamId;
    streamHeader.type = type;
    streamHeader.streamLength = size;
    sendTo(connectionInformation, streamHeader, true);

    // Send data in 512 byte chunks.
    ((Connection)connectionInformation).addListener(new InputStreamSender(stream, 1024) {
        @Override
        protected Object next (byte[] bytes) {
            Packet.StreamChunk chunkPacket = new Packet.StreamChunk();
            chunkPacket.streamId = streamId;
            chunkPacket.chunkBytes = bytes;
            return chunkPacket;
        }
    });
}