-
클라이언트와 서버가 서로 연결할 준비가 되어 있으면 InputStream과 OutputStream을 이용해서 양방향으로 서로 통신하며 연결할 수 있다.
==========================================================
클라이언트가 서버에게 주고 받는 코드를 입력했다.
Socket socket = null;
OutputStream outputStream = null;DataOutputStream dataOutputStream = null;
InputStream inputStram = null;DataInputStream dataInputStream = null;
Scanner scanner = null;
//오고 가는 값을 읽어들이기 위해서 Scanner 클래스도 사용한다.
try{
socket = new Socket("localhost", 9000);
System.out.println(" 서버 연결합니다 ");
outputStream = socket.getOutputStream();
dataOutputStream = new DataOutputStream(outputStream);
inputStream = socket.getInputStream();
dataInputStream = new DataInputStream(inputStream);
// 클라이언트가 서버에 요청을 보내고 그에 대한 요청값을 받아오는 것을 작성한 것이다.//
scanner = new Scanner (System.in);
while (true) {
System.out.println("메세지를 입력하시오");String outerMessage = scanner.nextLine();
dataOuterputStream.writeUTF(outMessage);
dataOutputStream.flush();
String innerMessage = dataInputStream.readUTF();
System.out.println("inMessage: " + inMessage);
if(outMessage.equls("STOP")) break;
}
}catch (Exception e) {e.printStackTrace();
}finally {
try{if(dataOutputStream != null) dataOutputStream.close();
if(outputStream != null) outputStream.close();
if(dataInputStream != null) dataInputStream.close();if(InputStream != null) InputStream.close();
if(socket != null) socket.close();
} catch (Exception e){e.printStackTrace();
}
}==========================================================
클라이언트에게 정보를 받은 서버에서의 주고 받는 작동과정이다.
ServerSocket serverSocket = null;
Socket socket = null;
InputStream InputStream = null;DataInputStream dataInputStream = null;
OutputStream OutputStram = null;DataOutputStream dataOutputStream = null;
try{
serverSocket = new ServerSocket(9000);
System.out.println("클라이언트의 요청 받아들임");
socket = serverSocket.accept();
System.out.println("클라이언트 요청 접속 연결");
System.out.println("socket: " + socket);
inputStream = socket.getInputStream();
dataInputStream = new DataInputStream(inputStream);
outputStream = socket.getOutputStream();
dataOutputStream = new DataOutputStream(outputStream);
while (true) {
String clinetMessage = dataInputStream.readUTF();
System.out.println("clientMessage: " + clientMessage);
dataOutputStream.writeUTF("요청 메세지 전송 완료");
dataOutputStream.flush();
if(clientMessage.equlas("STOP")) break;
}
}catch (Exception e) {
e.printStackTrace();
}finally {try{
if(dataInputStream != null) dataInputStream.close();
if(InputStream != null) InputStream.close();
if(dataOutputStream != null) dataOutputStream.close();if(outputStream != null) outputStream.close();
if(socket != null) socket.close();
} catch (Exception e){e.printStackTrace();
}
'자바 > 자바 키포인트' 카테고리의 다른 글
[자바] ArrayList 배열을 사용하여 간단한 학생 성적 프로그램 만드는 연습하기 (0) 2023.01.03 [자바] 상위 클래스와 하위 클래스 간의 상속과 메서드 다형성 예제 만들어보기 (0) 2022.12.28 [자바] 네트워킹과 클라이언트와 서버의 socket&serverSocket의 정의와 예시문 정리하기 (0) 2022.12.18 [자바] Reader&Writer의 개념과 BufferedReader, BufferedWriter를 사용하여 예문 만들기 연습 (0) 2022.12.18 [자바] InputStream, OutputStream 입출력을 사용하여 파일 복사 코드 입력하기 예시문 (0) 2022.12.18 댓글