- [Error Note] 27. Java socket 오류: Socket closedSong hyun[Error Note] 27. Java socket 오류: Socket closed 자바에서 소켓 통신을 배우던 중, 'Socket closed'라는 오류가 발생했다. e.stacktrace를 통해 출력된 코드를 확인해보자. 원시코드를 읽어보면 해당 state가 connected보다 클 때, "Socket closed"를 출력하게끔 코드가 작성되어 있다. 서버측의 코드가 닫혀 있고, 해당 서버로 접속을 시도할 때 이 에러메세지가 출력되는 것이다. '어떤 부분에서 에러가 발생한걸까? 왜 서버의 소켓이 닫혀있지?' 라고 생각하던 도중, join()이 선언되지 않은 것을 확인할 수 있다. join()은 다른 스레드가 종료되기 전까지는 해당 스레드가 종료되지 않게 기다려주는 역할을 한다. 서버, 클라이언트에..
- 2024-05-23 11:40:03
- [Java] 97. 코드 리팩토링 (1:1 양방향 통신-서버측)Song hyun[Java] 97. 코드 리팩토링 (1:1 양방향 통신)(1) 1단계. 함수로 분리하기(2) 2단계. 상속 활용하기 (부모-추상 클래스 작성)(3) 3단계. 상속 활용하기 (자식 클래스 작성) *먼저 보고 오면 좋은 글https://whatsthatsound.tistory.com/192 [Java] 96. 1:1 양방향 통신(채팅 기본 기능 구현)[Java] 96. 1:1 양방향 통신(채팅 기본 기능 구현)1. 멀티 스레드의 개념2. 시나리오 코드 작성 (1): 서버 측 구현3. 시나리오 코드 작성 (2): 클라이언트 측 구현 1. 멀티 스레드의 개념* 멀티 스레whatsthatsound.tistory.com (1) 1단계. 함수로 분리하기(1) 클라이언트로부터 데이터를 읽는 Thread 분리 -원래는..
- 2024-05-23 09:53:00
- [Java] 96. 1:1 양방향 통신(채팅 기본 기능 구현)Song hyun[Java] 96. 1:1 양방향 통신(채팅 기본 기능 구현)1. 멀티 스레드의 개념2. 시나리오 코드 작성 (1): 서버 측 구현3. 시나리오 코드 작성 (2): 클라이언트 측 구현 1. 멀티 스레드의 개념* 멀티 스레드 개념을 활용하여 1:1 양방향 통신-채팅 기능을 구현해보자! -양방향 통신을 지속적으로 수행하기 위해, 서버와 클라이언트 모두에서 키보드 입력을 받아 상대방에게 데이터를 보내고, 받을 수 있게 코드를 작성해보자.-Thread/while문 활용하기 2. 시나리오 코드 작성 (1): 서버 측 구현 (1) 서버 측 코드 개요:-ServerSocket을 생성하고, 클라이언트의 연결을 기다린다.-BufferedReader를 사용해 클라이언트로부터 메세지를 읽고, PrintWriter를 사용해 ..
- 2024-05-22 17:44:21
- [Java] 95. 1:1 양방향 통신 (서버 측)Song hyun[Java] 94. 1:1 양방향 통신 (서버 측)1. 서버 측 시나리오 코드 1. 서버 측 시나리오 코드 (1) 양방향 통신 시에는 inputStream/outputStream 둘 모두가 필요하다. (2) 서버측 준비물-클라이언트 측의 연결 요청을 받을 서버 소켓-포트 번호(0~65535) (3) 5001의 포트 번호를 지닌 serverSocket을 선언, 초기화한다.(4) serverSocket.accept()를 통해, 5001 포트번호의 클라이언트와 연결되는 소켓을 선언한다. (5) inputStream-BufferedReader: socket을 통해 클라이언트 측으로부터 받은 데이터를 읽어들인다.(6) outputStream-PrintWriter: socket을 통해 클라이언트에게 메세지를 보낸..
- 2024-05-22 14:43:11
- [Java] 94. 1:1 단방향 통신 (Client)Song hyun[Java] 94. 1:1 단방향 통신 (Client)1. PrintWriter 란?2. 로컬 호스트와 루프백3. 시스템 콜4. 시나리오 코드 (클라이언트 측)1. PrintWrite란?(1) PrinWriter: PrinWriter는 자바 클래스의 한 종류로, 바이트를 문자 형태를 가지는 객체로 바꿔준다. (=text output)(2) 특징-편리한 메서드: print(), println(), printf() 등 여러 메서드를 제공하여, 다양한 형식의 데이터를 손쉽게 출력할 수 있다.-자동 플러시(Auto-flush): PrintWriter를 생성할 때, autoFlush를 true로 선언하면, println()등의 메서드 호출 시에 자동으로 버퍼가 flush() 처리된다. 즉, 데이터를 즉시 전송하게..
- 2024-05-22 14:38:40
- [Java] 93. 1:1 단방향 통신 (Server 측)Song hyun[Java] 93. 1:1 단방향 통신 (Server 측)1. 왜 서버 측 기본 코드를 작성할까?2. 시나리오 코드 작성1. 네트워크 통신의 기초 이해 (1) 네트워크 통신의 기초 이해: 서버는 네트워크 통신의 핵심 역할을 한다. 서버 측 코드를 작성함으로써, 우리는 네트워크 통신의 기본 개념을 이해할 수 있다.-서버 소켓 생성(ServerSocket): 네트워크 연결을 기다리는 소켓.-포트 바인딩: 특정 포트 번호에 서버 소켓을 결합하여, 외부에서 접근할 수 있게 한다.-클라이언트 연결 수락: 클라이언트가 서버에 연결될 수 있게 대기하고, 요청을 받아들인다. (2) 데이터 송수신 이해: 서버 측 코드에서 클라이언트로부터 데이터를 수신하고, 이를 처리하는 과정을 배울 수 있다. 이는 네트워크 프로그래밍..
- 2024-05-22 14:22:02
- [Java] 92. Socket이란?Song hyun[Java] 92. Socket이란?1. 소켓의 개념2. 소켓의 종류3. 소켓의 동작 방식4. Java 에서의 소켓 프로그래밍5. 시나리오 코드 : 소켓 통신을 해보자 1. 소켓의 개념(1) 소켓(Socket): 소켓은 네트워크 상에서 통신을 가능하게 하는 끝점을 의미한다. 두 컴퓨터 간의 데이터를 주고 받기 위해 사용되는 인터페이스로, 우리는 소켓을 통해 네트워크 연결을 설정하고, 데이터를 송수신할 수 있다.=> 쉽게 말해, 소켓은 네트워크를 통해 다른 컴퓨터와 대화하는 전화기인 셈이다!-> 소켓은 물리적인 장치가 아닌 추상적인 개념의 약속이다. -> 소켓은 네트워크 통신을 위해 sw적으로 정의된 인터페이스이며, 컴퓨터 간의 데이터 교환을 가능하게 하는 규칙과 방법을 의미한다. *일반 사용자 컴퓨터에..
- 2024-05-22 12:46:06
- [설치 메뉴얼] Spring suite 설치 및 적용 방법Song hyun[설치 메뉴얼] Spring suite 설치 및 적용 방법1. Spring suite 설치하기 2. Spring suite 적용하기 1. Spring suite 설치하기 Spring Tool Suite는 Spring 개발을 위한 개발 도구이다. 함께 Spring Tool Suite를 설치해보자.Spring Tool Suite는 Java가 먼저 설치되어 있어야 한다.만약 Java를 설치하지 않은 사람이라면 먼저 Java부터 설치하고 오자.(참고하면 좋을 글:https://whatsthatsound.tistory.com/2) [설치 메뉴얼] JDK-Amazon Corretto 설치 메뉴얼[설치 메뉴얼] JDK-Amazon Corretto 설치 메뉴얼 JDK를 검색한 뒤, Amazon Corretto 에 들어..
- 2024-05-22 11:03:48
- [Java] 91. 고수준 스트림 (Object)Song hyun[Java] 91. 고수준 스트림 (Object)1. ObjectInputStream / ObjectOutputStream 2. 직렬화와 역직렬화3. 시나리오 코드 (1): 객체 직렬화하기4. 시나리오 코드 (2): 객체 역직렬화하기 1. ObjectInputStream / ObjectOutputStream -ObjectInput/OutputStream은 객체를 직렬화하여 파일에 쓰거나, 네트워크에 전송하고, 이를 다시 역직렬화하여, 객체로 복원할 때 사용하는 자바의 입출력 클래스이다. -객체 스트림(Object~Stream)은 메모리상에 존재하는 객체를 직접 파일로 입출력해줄 수 있는 스트림이다.자바에서 객체 안에 저장되어 있는 내용을 파일로 저장하거나, 네트워크를 통해 다른 곳으로 전송하려면 객체를 ..
- 2024-05-22 10:19:56
- [Java] 90. 고수준 스트림 (Data)Song hyun[Java] 90. 고수준 스트림1. DataInputStream/DataOutputStream(원시 자료형 스트림)2. DataInputStream/DataOutputStream : 시나리오 코드1. DataInputStream/DataOutputStream(원시 자료형 스트림)-DataInputStream/DataOutputStream은 자바의 입출력 스트림 클래스 중 하나로, 원시 자료형(int,double,char...) 을 쉽게 읽고 쓸 수 있게 도와준다. 이 두 클래스는 데이터의 형식을 유지하면서 입력, 출력을 수행할 수 있어, 자료의 손실 없이 데이터를 주고 받을 수 있다는 장점이 있다. *기타 클래스들은 문자나 바이트 형식의 데이터만 읽고 쓸 수 있다. dataInput/OutputStr..
- 2024-05-22 09:40:48
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)