[Java] 소켓 양방향 통신 구현
·
Java/Base
- 서버와 클라이언트는 서로 키보드로 입력한 메세지를 주고 받을 수 있음 서버 측 코드public class ServerTest { // 클라이언트를 연결받는 소켓 ServerSocket serverSocket; // 실제 통신을 담당할 소켓 Socket socket; // 키보드 담당 입력 스트림 BufferedReader keyboardReader; // 소켓 담당 입력 스트림 BufferedReader socketReader; // 소켓 담당 출력 스트림 BufferedWriter socketWriter; public ServerTest() { initData(); } private void initData() { ..
[Java] 소켓 통신
·
Java/Base
소켓 통신  - 양 끝단에 포트 번호를 달아서, 통신을 통해 데이터를 주고 받는 것  - 커넥션 풀 (connection pool) : 소켓은 한 번 연결되면 지속적으로 연결되어 있음      → 인증 정보가 필요하지 않음  - 서버 측과 클라이언트 측은 코드로 연결된 것이 아니라, 통신을 통해 연결되는 것  - 양방향 통신 예제 : https://young0105.tistory.com/107#  서버  - 서비스를 제공하는 자  - 소켓 2개를 필요로 함      1) ServerSocket : 클라이언트의 연결만 받는 소켓 (데이터 주고 받기 X)      2) Socket : 실제로 통신하며 데이터를 주고 받는 소켓#  클라이언트  - 서비스를 요청하는 자  - 소켓 1개를 필요로 함      1)..
[Java] 입출력 스트림 (I/O Stream)
·
Java/Base
I/O Stream (입출력 스트림)  - I/O : 데이터를 읽고 쓰는 작업  - 스트림 : 네트워크에서의 자료 흐름이 물의 흐름과 같다는 비유에서 유래   - 다양한 입출력 장치에 독립적으로 일관성 있는 입출력을 제공함  - 입출력 장치  ex) 파일 디스크, 키보드, 마우스, 네트워크, 메모리 등  - 한 방향으로만 움직임  입출력 스트림의 구분#  대상 기준  1) 입력 스트림 (InputStream, Reader, ...)  2) 출력 스트림 (OutputStream, Writer, ...)#  자료의 종류 기준  1) 바이트 단위 스트림 (InputStream, OutputStream, ...)  2) 문자 단위 스트림 (Reader, Writer, ...)#  기능 기준  1) 기반 스트림 ..
[Java] 입출력 스트림 - 예제 모음
·
Java/Base
엔터 키를 누를 때까지 반복해서 값을 입력받기// 엔터 키를 누를 때까지 반복해서 값을 입력받기 (엔터 키 = '\n')int i;while ( (i = System.in.read()) != '\n' ) { System.out.print((char) i);} 특정 파일의 모든 글자 읽어오기// 특정 txt 파일의 모든 글자 읽기 (엔터 키, 공백도 포함)FileInputStream fis변수명 = null;try { // 여기 입력하는 파일은 이미 존재하는 파일 fis변수명 = new FileInputStream("경로/파일명.txt"); // 한글이 포함되었을 경우, 문자 스트림 FileReader 활용 int i; // i는 데이터를 1byte씩 가져올 임의의 변수명..
[Java] Map - 전화번호부 프로그램 구현
·
Java/Base
코드#  기능 정의 파일public class PhoneBook { // 이름 전화번호 HashMap phoneBook = new HashMap(); static Scanner scanner = new Scanner(System.in); public void sampleData() { phoneBook.put("김철수", "010-1234-1234"); phoneBook.put("이영수", "010-5678-5678"); phoneBook.put("박민수", "010-9876-9876"); } // 저장 기능 public void save() { String phoneName = null; // 입력받을 이름 ..