diff --git a/src/main/java/com/munjaon/client/server/packet/KakaoMessage.java b/src/main/java/com/munjaon/client/server/packet/KakaoMessage.java index 90e10fd..a65cc5e 100644 --- a/src/main/java/com/munjaon/client/server/packet/KakaoMessage.java +++ b/src/main/java/com/munjaon/client/server/packet/KakaoMessage.java @@ -170,4 +170,23 @@ public final class KakaoMessage { return fileHeadBuffer; } + + public static ByteBuffer makeJsonBodyForDeliver(String path, String fileName) { + if (path == null || fileName == null) { + return null; + } + File file = new File(path + fileName); + if (file.exists() == false) { + return null; + } + + ByteBuffer fileBodyBuffer = null; + try { + fileBodyBuffer = ByteBuffer.allocate((int) file.length()); + fileBodyBuffer.put(Files.readAllBytes(file.toPath())); + } catch (IOException e) { + } + + return fileBodyBuffer; + } } diff --git a/src/main/java/com/munjaon/client/server/service/CollectClientService.java b/src/main/java/com/munjaon/client/server/service/CollectClientService.java index 7e86fd0..25a5ac1 100644 --- a/src/main/java/com/munjaon/client/server/service/CollectClientService.java +++ b/src/main/java/com/munjaon/client/server/service/CollectClientService.java @@ -671,7 +671,12 @@ public class CollectClientService extends Service { /* 파일 전송 */ ByteBuffer fileHeadBuffer = KakaoMessage.makeJsonHeaderForDeliver(path, data.getKakaoJsonFile()); socketChannel.write(fileHeadBuffer); - uploadFileSend(path + data.getKakaoJsonFile()); + ByteBuffer fileBodyBuffer = KakaoMessage.makeJsonBodyForDeliver(path, data.getKakaoJsonFile()); + fileBodyBuffer.flip(); + while(fileBodyBuffer.hasRemaining()){ + int bytesWritten = socketChannel.write(fileBodyBuffer); + saveLog("bytesWritten : " + bytesWritten); + } long MSG_SEND_TIME = System.currentTimeMillis(); while (true) { @@ -824,7 +829,12 @@ public class CollectClientService extends Service { /* 파일 전송 */ ByteBuffer fileHeadBuffer = KakaoMessage.makeJsonHeaderForDeliver(path, data.getKakaoJsonFile()); socketChannel.write(fileHeadBuffer); - uploadFileSend(path + data.getKakaoJsonFile()); + ByteBuffer fileBodyBuffer = KakaoMessage.makeJsonBodyForDeliver(path, data.getKakaoJsonFile()); + fileBodyBuffer.flip(); + while(fileBodyBuffer.hasRemaining()){ + int bytesWritten = socketChannel.write(fileBodyBuffer); + saveLog("bytesWritten : " + bytesWritten); + } long MSG_SEND_TIME = System.currentTimeMillis(); while (true) {