-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Java 입출력 및 네트워크 프로그래밍
1. 예외 및 클래스 설명
- IOException: 입출력 작업에서 발생하는 예외를 처리하기 위해 사용
- InetSocketAddress: IP 주소와 포트 번호를 함께 다루기 위해 사용
- ServerSocket: 서버 소켓을 다루기 위해 사용
- Socket: 클라이언트 소켓을 다루기 위해 사용
- ObjectInputStream: 객체를 입력 스트림으로 읽기 위해 사용
- ObjectOutputStream: 객체를 출력 스트림으로 쓰기 위해 사용
- InputStream: 바이트 입력을 위한 기본 클래스.
- OutputStream: 바이트 출력을 위한 기본 클래스.
2. 네트워크 주소 처리
- InetAddress: 네트워크 주소를 다루기 위해 사용
- UnknownHostException: 호스트를 찾을 수 없을 때 발생하는 예외
- getLocalHost(): 로컬 호스트를 가져옴
- getHostAddress(): 로컬 IP 주소를 출력
- getByName(도메인): 해당 도메인에 대한 InetAddress를 가져옴
for (InetAddress ip : addrs) {
System.out.println(ip.getHostAddress());
}3. 메시지 읽기 예시
InputStream is = socket.getInputStream(); // 소켓으로부터 입력 스트림을 가져옴
ObjectInputStream ois = new ObjectInputStream(is); // 입력 스트림을 ObjectInputStream으로 감쌈
String msg = ois.readUTF(); // 서버로부터 메시지를 읽음
System.out.println("[server 메시지] " + msg); // 읽어온 메시지를 출력5. 메시지 보내기 예시
OutputStream os = socket.getOutputStream(); // 소켓으로부터 출력 스트림을 가져옴
ObjectOutputStream oos = new ObjectOutputStream(os); // 출력 스트림을 ObjectOutputStream으로 감쌈
flush(): 출력 스트림의 내용을 즉시 전송6. 파일 스트림 준비 예시
// 보조 스트림 준비
BufferedInputStream bis = new BufferedInputStream(fis);7. 소켓을 통한 통신 준비
// 6-1. FileInputStream 준비
File file = new File("C:\\img\\temp\\img1234.gif");
FileInputStream fis = new FileInputStream(file);
- DataInputStream: 데이터 입력을 위한 스트림.
- DataOutputStream: 데이터 출력을 위한 스트림.
8. 스레드 생성자
- Thread(): 새로운 스레드 객체 할당.
- Thread(String name): 새로운 스레드 객체가 할당되며, 스레드 이름은 name으로 설정됨.
- Thread(Runnable target): Runnable target이 구현된 스레드 객체 할당.
- Thread(Runnable target, String name): Runnable target이 구현된 스레드 객체가 할당되면 스레드 이름은 name으로 설정됨.
9. 스레드 메소드
- void run(): 스레드의 실행 코드가 작성되는 메소드로 사용자는 run() 메소드를 오버라이드 하여 사용
- void start(): 스레드가 시작되도록 요청하는 메소드로 JVM은 해당 스레드의 run() 메소드를 호출.
- void interrupt(): 스레드를 중지.
- void join(): 이 스레드가 끝날 때까지 대기.
- void join(long millis): 최대 millis 시간 동안 이 스레드가 끝날 때까지 대기.
- static void sleep(long millis): millis 시간 동안 현재 스레드를 일시 중지.
- static void yield(): 현재 스레드의 실행 시간을 다른 스레드에게 양보.
- static Thread currentThread(): 현재 실행 중인 스레드 객체의 참조값을 반환.
- long getId(): 스레드의 ID를 반환
- String getName(): 스레드의 이름을 반환.
- int getPriority(): 스레드의 우선순위 값을 반환. (우선순위 범위: 1 ~ 10)
- Thread.State getState(): 스레드의 state 값을 반환.
- ThreadGroup getThreadGroup(): 스레드가 속한 스레드 그룹을 반환.
- static boolean interrupted(): 현재 스레드의 interrupted 여부를 반환.
- boolean isInterrupted(): 이 스레드의 interrupted 여부를 반환.
- boolean isAlive(): 이 스레드가 살아있는지 여부를 반환.
- boolean isDaemon(): 이 스레드가 데몬 스레드인지 여부를 반환.
- void setDaemon(boolean on): 이 스레드를 데몬 스레드로 변경.
- void setName(String name): 이 스레드의 이름을 name으로 변경.
- void setPriority(int newPriority): 이 스레드의 우선순위를 newPriority로 변경.
- String toString(): 이 스레드의 이름, 우선순위, 스레드 그룹 등의 정보를 담은 문자열을 반환.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels