- NormalCloseServer
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import static util.MyLogger.log;
public class NormalCloseServer {
public static void main(String[] args) throws InterruptedException, IOException {
ServerSocket serverSocket = new ServerSocket(12345);
Socket socket = serverSocket.accept();
log("소캣 연결: " + socket);
Thread.sleep(1000);
socket.close();
log("소캣 종료");
}
}
- NormalCloseClient
import java.io.*;
import java.net.Socket;
import static util.MyLogger.log;
public class NormalCloseClient {
public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 12345);
log("소캣 연결: " + socket);
InputStream input = socket.getInputStream();
readByInputStream(input, socket);
readByBufferedReader(input, socket);
readByDataInputStream(input, socket);
log("연결 종료: " + socket.isClosed());
}
private static void readByInputStream(InputStream input, Socket socket) throws IOException {
int read = input.read();
log("read = " + read);
if (read == -1) {
input.close();
socket.close();
}
}
private static void readByBufferedReader(InputStream input, Socket socket) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(input));
String readString = br.readLine();
log("readString = " + readString);
if (readString == null) {
br.close();
socket.close();
}
}
private static void readByDataInputStream(InputStream input, Socket socket) throws IOException {
DataInputStream dis = new DataInputStream(input);
try {
dis.readUTF();
} catch (EOFException e) {
log(e);
} finally {
dis.close();
socket.close();
}
}
}
'개발이 좋아서 > Java가 좋아서' 카테고리의 다른 글
HTTP 기본 이론(간단 요약) (1) | 2024.12.01 |
---|---|
네트워크 예외4 - 강제 종료 (0) | 2024.11.30 |
네트워크 예외2 - 타임아웃 (0) | 2024.11.30 |
네트워크 예외1 - 연결 예외 (1) | 2024.11.30 |
네트워크 - 프로그램 예제 (0) | 2024.11.30 |