반응형
반응형
CRC란? 이미지나 실행 프로그램, 압축파일 등등. 모든 파일은 16비트 Hex값 바이트 배열(Bytes)로 변환이 가능하다. 그래서 파일 위변조나 에러 체크를 하는 방법은 원본파일과 전송된 파일을 풀어 Hex값을 비교해서 일치하는지 확인해 보면 된다. 눈에 보이는 프로그램이나 가벼운 프로그램은 쉽게 알아차릴 수 있지만, 용량이 크거나 파일이 위변조가 됬는지 알려면 수많은 Hex값을 비교해봐야 하는데 쉽지 않다. 이걸 간단하게 확인 할 수 있는 방법이 CRC(Cyclic Redundancy Cehck)다. Hex값들을 다항식 알고리즘을 적용하여, 이를 송신측과 수신측이 각각 검증코드를 만들어서 일치하는지 확인하면 된다. CRC 종류 CRC는 결과 자리수에따라 크게 CRC-8 / CRC-16 / CRC-3..
JAVA로 소켓통신을 하기 위한 가장 심플한 코드입니다. 아래 코드는 서버를 실행하면 소켓이 열리고, 클라이언트를 따로 실행하여 메시지를 보내면 소켓에 저장됩니다. 소켓에 저장된 내용을 클라이언트에 뿌려주는 방식입니다. 단순히 메시지를 송/수신하여 확인하는것으로 아직 별다른 기능이 구현되어 있지 않지만, 이 기본코드를 통해서 앞으로 기능들을 추가할 생각입니다. ◇ 서버 출력 결과 / 소스 package socket.server; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; impo..
저번글에서 파일의 내용을 읽어오는 바이트 기반 스트림중 입력 스트림을 알아보았다면, 이번글에서는 출력 스트림에 대해 간단하게 정리하겠습니다. 출력 스트림은 프로그램이 출발지로 도착지인 모니터나 파일, 텍스트에 출력하는 것이기 때문에 파일을 저장하거나, 복사하는 등의 기능을 수행 할 수 있습니다. 저는 파일을 복사하도록 해볼게요. ■ FileOutputStream으로 파일 복사하기 ▼ 파일복사는 저번글에서 사용했던 hunit.txt 파일을 사용하겠습니다.내용은 '안녕하세요'로 담겨 있습니다. ▼ 자바로 돌아와서 소스코드를 위와 같이 작성합니다.[8~9] 복사할 파일과 생성할 파이을 지정하고[14] data에 실제로 읽을 데이타를 저장합니다.[15] readBy는 한번에 200바이트를 읽어 저장하고 [16~..
이번 글에서는 바이트기반 스트림 중 입력 스트림인 FileInputStream 클래스를 사용해 보겠습니다. 이 클래스는 바이트 기반으로 그림, 오디오, 비디오 등 모든 종류의 데이터를 읽을 수 있습니다. 저는 간단하게 텍스트 파일을 만들어 자바에서 불러볼텐데요. 만약 파일이 존재하지 않으면 FileNotFoundException 예외를 띄워버리기 때문에 try - catch 구문을 사용해서 예외처리를 해야 합니다. ■ FileInputStream 메소드로 텍스트파일 내용 읽기 ▼ 먼저 아무 디렉토리에 텍스트 파일을 만들고 내용을 입력합니다.저는 프로젝트 폴더가 생성되있는 최상단 폴더에 저장했습니다. ▼ 그리고 위와 같이 소스코드를 작성하였습니다. try- catch의 예외처리 구문에서 경로를 지정해주고,..
파일의 입출력을 담당하는 파일클래스는 java.io 패키지에서 제공하는데요. 그 중 파일의 크기, 속성, 이름등의 정보를 얻는 메소드를 정리해보려고 합니다. 줄번호에 해당하는 메소드의 설명과 그에 따라 콘솔에 출력되는 화면은 아래 사진으로 첨부하였습니다. [8~9] 지정된 디렉토리에 파일이 존재하는지 알아보는 메소드 exists() 함수[11~16] 파일인지 디렉토리인지 판단하는 isFile() 함수[18~20] printf는 예외~!![22~31] 아래사진과 같음■ 소스코드 및 출력결과
자바의 데이터는 스트림(Stream)을 통해 입·출력되는데요. 스트림은 기본적으로 단일 방향으로 흘러가는 것으로 출발지에서 도착지로 이동합니다. 프로그램을 기준으로 데이터가 입력받으면 입력스트림, 데이터가 프로그램에서 출력이 되면 출력스트림이라는 것이 제일 중요합니다. ■ 입력 스트림 & 출력 스트림- 입력 스트림 : 키보드/ 파일/ 프로그램으로 입력받고 프로그램을 도착지로 향하는 것이 입력 스트림입니다.- 출력 스트림 : 프로그램을 출발지로 모니터/ 파일/ 프로그램으로 향하는 것이 출력 스트림입니다. ■ 바이트 기반 스트림 / 문자 기반 스트림스트림 클래스는 그림,멀티미디어,문자등 모든 종류의 데이터를 주고 받는 바이트 기반 스트림과 문자만 주고받을 수 있도록 특화된 문자 기반 스트림 2종류로 나눌 수..