서버와 클라이언트가 네트워크를 통해서 채팅하는 문제입니다 이를 해결하는 다음 프로그램에 대해 빈칸을 채우세요 클라이언트 -> 서버 -> 클라이언트 -> 서버 순서로 번갈아 가면서 순서대로 메시지를 전송합니다
| 서버 | 클라이언트 |
|
[Server]님이 들어오셨습니다. 대화(종료시 quit)를 입력하세요 [Client]님이 들어오실때까지 잠시만 기다려주세요 [Client]님이 들어오셨습니다 [Client]안녕하세요 [Server]반갑습니다 [Client]님이 나가셨습니다 |
[Client]님이 들어오셨습니다. 대화(종료시 quit)를 입력하세요 [Server]님이 들어오셨습니다 [Client]안녕하세요 [Server]반갑습니다 [Client]quit [Client]님이 나가셨습니다 |
| 서버 | 클라이언트 |
|
[Server]님이 들어오셨습니다. 대화(종료시 quit)를 입력하세요 [Client]님이 들어오실때까지 잠시만 기다려주세요 [Client]님이 들어오셨습니다 [Client]안녕하세요 [Server]반갑습니다 [Client]그동안 잘 지내셨어요? [Server]덕분에 잘 지내고 있습니다 [Client]님이 나가셨습니다 |
[Client]님이 들어오셨습니다. 대화(종료시 quit)를 입력하세요 [Server]님이 들어오셨습니다 [Client]안녕하세요 [Server]반갑습니다 [Client]그동안 잘 지내셨어요? [Server]덕분에 잘 지내고 있습니다 [Client]quit [Client]님이 나가셨습니다 |
| 서버 | 클라이언트 |
|
[Server]님이 들어오셨습니다. 대화(종료시 quit)를 입력하세요 [Client]님이 들어오실때까지 잠시만 기다려주세요 [Client]님이 들어오셨습니다 [Client]안녕하세요 [Server]반갑습니다 [Client]그동안 잘 지내셨어요? [Server]덕분에 잘 지내고 있습니다 [Client]앗~ 지금 나가봐야 할 것 같아요 죄송합니다 [Server]다음에 뵈요 [Client]님이 나가셨습니다 |
[Client]님이 들어오셨습니다. 대화(종료시 quit)를 입력하세요 [Server]님이 들어오셨습니다 [Client]안녕하세요 [Server]반갑습니다 [Client]그동안 잘 지내셨어요? [Server]덕분에 잘 지내고 있습니다 [Client]앗~ 지금 나가봐야 할 것 같아요 죄송합니다 [Server]다음에 뵈요 [Client]quit [Client]님이 나가셨습니다 |
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class NaiveChatServer
{
public static void main( String[] args ) {
{
System.out.println( "[Server]님이 들어오셨습니다. 대화(종료시 quit)를 입력하세요" );
System.out.println( "[Client]님이 들어오실때까지 잠시만 기다려주세요" );
serverSocket = new ( 7700 );
socket =
serverSocket.();
System.out.println( "[Client]님이 들어오셨습니다" );
networkIn = new ( new ( socket.() ) );
networkOut = new ( socket.(), );
Scanner scan = new Scanner( System.in );
( ) {
String clientMessage =
networkIn.();
( clientMessage.( "quit" ) ) {
System.out.println( "[Client]님이 나가셨습니다" );
;
}
System.out.println( "[Client]" + clientMessage );
System.out.print( "[Server]" );
String serverMessage =
scan.();
networkOut.println( serverMessage );
}
networkIn.();
networkOut.();
socket.();
serverSocket.();
scan.();
} ( Exception e ) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class NaiveChatClient
{
public static void main( String[] args ) {
{
System.out.println( "[Client]님이 들어오셨습니다. 대화(종료시 quit)를 입력하세요" );
socket =
new ( "", 7700 );
System.out.println( "[Server]님이 들어오셨습니다" );
networkIn = new ( new ( socket.() ) );
networkOut = new ( socket.(), );
Scanner scan = new Scanner( System.in );
( ) {
System.out.print( "[Client]" );
String clientMessage =
scan.();
networkOut.println( clientMessage );
( clientMessage.( "quit" ) ) {
System.out.println( "[Client]님이 나가셨습니다" );
;
}
String serverMessage =
networkIn.();
System.out.println( "[Server]" + serverMessage );
}
networkIn.();
networkOut.();
socket.();
scan.();
} ( Exception e ) {
e.printStackTrace();
}
}
}