728x90
반응형
[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을 통해 클라이언트에게 메세지를 보낸다.
이 때 auto flush를 true로 설정하면, 더욱 더 편리하게 데이터를 보낼 수 있다.
(7) try-catch-finally 문을 통해 socket과 serverSocket을 닫아준다.
1. 서버 측 시나리오 코드
-InputStream, OutputStream 둘 다 필요하다.
package ch03;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class ClientFile {
public static void main(String[] args) {
// 클라이언트 측 준비물
// 1. 서버 측 IP 주소와 포트 번호가 필요하다.
// 2. 서버 측 소켓과 연결될 소켓이 필요하다.
Socket socket = null;
try {
socket = new Socket("localhost",5001);
PrintWriter writer = new PrintWriter(socket.getOutputStream(),true);
writer.println("안녕! 반가워~");
// 서버로부터 데이터를 받기 위한 입력 스트림이 필요하다.
// 대상은 소켓이다.
BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String message=reader.readLine();
System.out.println("서버 측 응답 : "+message);
} catch (Exception e) {
e.printStackTrace();
} finally {
if(socket != null) {
try {
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
728x90
반응형
'Java > 네트워크 통신' 카테고리의 다른 글
[Java] 97. 코드 리팩토링 (1:1 양방향 통신-서버측) (0) | 2024.05.23 |
---|---|
[Java] 96. 1:1 양방향 통신(채팅 기본 기능 구현) (0) | 2024.05.22 |
[Java] 94. 1:1 단방향 통신 (Client) (0) | 2024.05.22 |
[Java] 93. 1:1 단방향 통신 (Server 측) (0) | 2024.05.22 |
[Java] 92. Socket이란? (0) | 2024.05.22 |