반응형
자바(JAVA) 실습 - TCP 전문 통신 (fixed length) - readInt, writeInt 활용 (1)
환경 OpenJDK 1.8
FixedData
1. Client가 전송하는 전문의 형태를 지정
2. 배열로 각 전문의 키와 값을 지정
3. 기타 정보 저장
ReceivedLinkedMapData
1. 전문을 LinkedMap 형태로 저장
2. 전문의 항목을 키와 값으로 저장
ReceivedMapDataGlobal
1. LinkedMap 형태의 전체 전문을 키(ex. global id)에 매핑하여 저장
Server
1. 전문의 첫 4byte에 전문의 전체 길이 읽기 (readInt)
2. 전문 읽기 (read)
3. 전문 내용 확인 및 특정 키에 저장
4. 전문 확인 후 조합한 메세지를 client에게 전송 (writeInt, write)
5. 전송 후 대기
Client
1. 전문의 첫 4byte에 전문의 전체 길이 (writeInt)
2. 메세지 전송 (write)
3. 전문을 Server에 전송
4. 응답 메세지 읽기 (readInt, read)
5. 메세지 표시 후 종료
FixedData - 고정값 저장소 지정
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public class FixedData { public final int ifid = 12; // interface id public final int rqsy = 6; // request system public final int glid = 32; // global id public final int iqid = 8; // inquiry id public final int stdt = 8; // start date public final int endt = 8; // end date public String ifid_str = "Interface Id"; public String rqsy_str = "Request Sys"; public String glid_str = "Global Id"; public String iqid_str = "Inquiry Id"; public String stdt_str = "Start Date"; public String endt_str = "End Date"; public byte[] firsByte = new byte[0]; public byte[] ifidByte = new byte[ifid]; public byte[] rqsyByte = new byte[rqsy]; public byte[] glidByte = new byte[glid]; public byte[] iqidByte = new byte[iqid]; public byte[] stdtByte = new byte[stdt]; public byte[] endtByte = new byte[endt]; public int[] arrayId = { 0, ifid, rqsy, glid, iqid, stdt, endt }; public String[] arrayStr = { "", ifid_str, rqsy_str, glid_str, iqid_str, stdt_str, endt_str }; public byte[] arrayByte[] = { firsByte, ifidByte, rqsyByte, glidByte, iqidByte, stdtByte, endtByte }; public String[] arrayKey = { "", "ifid_str", "rqsy_str", "glid_str", "iqid_str", "stdt_str", "endt_str" }; } |
ReceivedLinkedMapData - 전문을 LinkedMap 형태로 저장
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import java.util.LinkedHashMap; public class ReceivedLinkedMapData { LinkedHashMap<String, String> receivedLinkedHashMap; public LinkedHashMap<String, String> getReceivedLinkedHashMap() { return receivedLinkedHashMap; } public void setReceivedLinkedHashMap(LinkedHashMap<String, String> receivedLinkedHashMap) { this.receivedLinkedHashMap = receivedLinkedHashMap; } @Override public String toString() { return "ReceivedLinkedMapData [receivedLinkedHashMap=" + receivedLinkedHashMap + "]"; } } |
ReceivedMapDataGlobal - LinkedMap 형태의 데이터를 키값 (ex. global id)에 매핑하여 저장
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import java.util.HashMap; public class ReceivedMapDataGlobal { static HashMap<String, ReceivedLinkedMapData> receivedMapDataGlobal; public static HashMap<String, ReceivedLinkedMapData> getReceivedMapDataGlobal() { return receivedMapDataGlobal; } public static void setReceivedMapDataGlobal(HashMap<String, ReceivedLinkedMapData> receivedMapDataGlobal) { ReceivedMapDataGlobal.receivedMapDataGlobal = receivedMapDataGlobal; } @Override public String toString() { return "ReceivedMapDataGlobal [receivedMapDataGlobal=" + receivedMapDataGlobal + "]"; } } |
반응형
'JAVA 자바 > JAVA 실습' 카테고리의 다른 글
[JAVA 실습 #6] 핸드폰번호 마스킹 - StringBuilder, charArray 활용 (0) | 2021.03.22 |
---|---|
[JAVA 실습 #5] TCP 전문 통신 (fixed length) - 전문 헤더 읽기 readInt, writeInt 활용 (2) (0) | 2021.02.07 |
[JAVA 실습 #4] WAR파일 실행시 IPv4 사용 설정 (0) | 2020.12.20 |
[JAVA 실습 #3] http통신, REST API 호출, json 데이터 처리 - StringBuilder, BufferedReader 활용 (0) | 2020.12.05 |
[JAVA 실습 #3] http통신, REST API 호출, json 데이터 처리 (0) | 2020.11.30 |