Add more net code
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package com.flaremicro.crossjeeves.net;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.Socket;
|
||||
|
||||
@@ -12,6 +14,7 @@ import com.flaremicro.crossjeeves.net.packet.Packet2Script;
|
||||
import com.flaremicro.crossjeeves.net.packet.Packet3Clone;
|
||||
import com.flaremicro.crossjeeves.net.packet.Packet5Artifact;
|
||||
import com.flaremicro.crossjeeves.net.packet.Packet4FileData;
|
||||
import com.flaremicro.util.Util;
|
||||
import com.flaremicro.util.ZipUtils;
|
||||
|
||||
public class ClientHandler extends NetworkHandler {
|
||||
@@ -52,17 +55,34 @@ public class ClientHandler extends NetworkHandler {
|
||||
{
|
||||
//disconnect
|
||||
}
|
||||
BufferedInputStream fileStream = null;
|
||||
try
|
||||
{
|
||||
File workspaceZip = File.createTempFile("workspace-"+fileId, ".zip");
|
||||
ZipUtils.zipDirectory(new File(workspace), workspaceZip);
|
||||
|
||||
packet = new Packet3Clone(fileId, workspaceZip.length());
|
||||
enqueue(packet);
|
||||
fileStream = new BufferedInputStream(new FileInputStream(workspaceZip));
|
||||
int read;
|
||||
byte[] buffer = new byte[4096];
|
||||
while((read = fileStream.read(buffer)) > -1)
|
||||
{
|
||||
if(read == 0)
|
||||
continue;
|
||||
Packet4FileData dataPacket = new Packet4FileData(fileId, (short)read, buffer);
|
||||
enqueue(dataPacket);
|
||||
}
|
||||
enqueue(new Packet4FileData(fileId, (short)0, new byte[]{}));
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
//disconnect
|
||||
e.printStackTrace();
|
||||
}
|
||||
finally
|
||||
{
|
||||
Util.cleanClose(fileStream);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user