본문 바로가기

Java155

순수 자바코드로 HttpServer 만들기 - 31 package ch01;import java.io.IOException;import java.net.InetSocketAddress;import com.sun.net.httpserver.*;public class SimpleHttpServer { public static void main(String[] args) { try { HttpServer.create(new InetSocketAddress(8080), 0); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }} package ch01;import java.io.IOException;import java.io.Out.. 2024. 6. 10.
# 소켓을 활용한 HTTP 통신이란 - 30 HTTP 통신은 소켓 통신 개념을 활용하여 데이터 전송을 수행합니다. HTTP는 TCP 소켓을 통해 클라이언트와 서버 간의 데이터를 주고받습니다 HTTP 통신 개념HTTP(HyperText Transfer Protocol)는 웹 브라우저와 웹 서버 간의 데이터 전송을 위한 프로토콜입니다. HTTP는 요청-응답(request-response) 모델을 기반으로 하며, 클라이언트가 요청을 보내면 서버가 응답을 반환합니다. HTTP는 주로 텍스트 기반의 프로토콜로, 클라이언트와 서버 간에 데이터를 주고받는 형식을 명확하게 정의합니다. 주요 HTTP 메서드GET: 서버에서 데이터를 요청합니다. 주로 데이터를 조회할 때 사용됩니다.POST: 서버에 데이터를 전송합니다. 주로 데이터를 생성하거나 업데이트할 때 사용됩.. 2024. 6. 10.
제네릭(Generic) - 29 제네릭 프로그래밍은 자바에서 타입을 일반화하여 재사용 가능한 코드를 작성하는 기법입니다. 제네릭을 사용하면 클래스, 인터페이스, 메서드 등에 대해 특정 타입을 지정하지 않고, 다양한 타입에서 동작하도록 할 수 있습니다. 제네릭 프로그래밍의 주요 이점타입 안정성: 컴파일 시 타입을 검사하여 런타임 에러를 줄일 수 있습니다.코드 재사용성: 다양한 타입을 처리할 수 있는 일반화된 코드를 작성할 수 있습니다.유지보수성: 타입 캐스팅을 줄여 가독성과 유지보수성을 향상시킵니다.ch01 package ch01;public class Plastic { @Override public String toString() { return "재료는 플라스틱 입니다"; }}package ch01;public class Po.. 2024. 6. 7.
네트워크 프로토콜이란? - 26 네트워크 프로토콜이란? 네트워크 프로토콜은 네트워크에서 데이터를 교환하기 위한 규칙과 절차의 집합입니다.프로토콜은 데이터 형식, 순서, 오류 제어 등을 정의하여 서로 다른 시스템 간의 통신을 가능하게 합니다. 주요 프로토콜HTTP (HyperText Transfer Protocol): 웹 페이지를 전송하기 위한 프로토콜입니다.TCP (Transmission Control Protocol): 신뢰성 있는 데이터 전송을 보장하는 프로토콜입니다.UDP (User Datagram Protocol): 신뢰성보다는 빠른 전송을 중시하는 프로토콜입니다.FTP (File Transfer Protocol): 파일 전송을 위한 프로토콜입니다.SMTP: 이메일 전송을 위한 프로토콜입니다.프로토콜 각기 다른 목적을 가지고 있.. 2024. 5. 24.
1: N 소켓 양방향 통신 - 25 1:N 소켓 양방향 통신에서는 하나의 서버가 여러 클라이언트와 동시에 양방향 통신을 할 수 있습니다. 이는 채팅 에플리케이션, 멀티플레이어 게임 서버 등에서 흔히 사용됩니다. 필요 개념서버와 클라이언트 소켓:서버는 하나의 ServerSocket을 통해 여러 클라이언트의 연결 요청을 기다립니다.클라이언트는 각각의 Socket을 통해 서버에 연결을 요청하고, 연결된 후 서버와 통신합니다.멀티스레딩:서버는 각 클라이언트와의 통신을 별도의 스레드에서 처리합니다. 이를 통해 여러 클라이언트와 동시에 통신할 수 있습니다.각 클라이언트는 서버와의 통신을 처리하는 자체 스레드를 가집니다.동기화 및 자원 관리:여러 스레드가 동시에 데이터를 읽고 쓸 수 있으므로, 데이터의 일관성을 유지하기 위한 동기화가 필요합니다.서버는.. 2024. 5. 24.
1:1 양방향 통신(채팅 기본 기능 구현) - 24 멀티 스레드 활용양바양 통신을 지속적으로 수행하기 위해 서버와 클라이언트 모두에서 키보드 입력을 받아 상대방에게 데이터를 보내고 받을 수 있도록 스레드와 while문을 활용하여 코드를 작성해봅시다. 서버 측 코드 - ServerSocket 을 생성하고 클라이언트의 연결을 기다립니다. - BufferedReader 를 사용하여 클라이언트로부터 메시지를 읽고, PrintWriter를 사용하여 클라이언트에게 메시지를 보냅니다. - 키보드 입력을 받기 위해 BufferedReader를 사용합니다. - 클라이언트로부터 데이터를 읽는 스레드와 키보드 입력을 클라이언트로 보내는 스레드를 각각 실행합니다.  Thread의 join() 메서드 - 역할과 기능스레드 동기화: join() 메서드를 사용하여 여러 스레드가 순.. 2024. 5. 24.