-
간단한 서버와 클라이언트 데이터 송/수신 하기JAVA/Network 2020. 10. 14. 13:38
아래의 내용을 기반으로 구현을 하도록 한다.
designatedroom87.tistory.com/177?category=896469
<Simpleserver.java>
<SimpleClient.java>
아래는 순서대로, 서버와 클라이언트를 각 각 실행한다.
아래는 처음에 서버를 실행하고 난 이후의 결과이다.
아래는 클라이언트를 실행하고 나서의 결과이다.
아래는 다시 서버에서의 실행결과를 본 것이다.
클라이언트가 서버에 접속했으니, 그 결과를 다시보기 위함이다.
소스 파일
다른 예로 채팅
<ChatServer.java>
소스 코드
더보기import java.io.*; import java.net.ServerSocket; import java.net.Socket; public class ChatServer { public static void main(String[] args) throws IOException { ServerSocket serverSock=new ServerSocket(5555); System.out.println("챗팅 서버 Starting....."); System.out.println("접속대기중"); Socket clientSock = serverSock.accept(); System.out.println(clientSock.getInetAddress()+"사용자가 접속했습니다."); System.out.println("챗팅을 시작합니다."); OutputStream os = clientSock.getOutputStream(); PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(os))); InputStream is = clientSock.getInputStream(); BufferedReader in = new BufferedReader(new InputStreamReader(is)); BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); int i = 0; while(true) { String out_msg = keyboard.readLine(); out.println(out_msg); out.flush(); String in_msg = in.readLine(); if(in_msg != null) {System.out.println(in_msg);} System.out.println(i++); if(i > 1000) {i = 0;} } } }
<ChatClient.java>
소스 코드
더보기import java.io.*; import java.net.Socket; import java.net.UnknownHostException; public class ChatClient { public static void main(String[] args) throws Exception, IOException { Socket socket = new Socket("127.0.0.1",5555); System.out.println("챗 서버에 접속했습니다."); System.out.println("챗팅을 시작합니다."); OutputStream os = socket.getOutputStream(); PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(os))); InputStream is = socket.getInputStream(); BufferedReader in = new BufferedReader(new InputStreamReader(is)); BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in)); while(true) { String out_msg = keyboard.readLine(); out.println(out_msg); String in_msg = in.readLine(); if(in_msg != null) {System.out.println(in_msg);} } } }
지금까지는 단 방향 통신만 가능한데, 아래의 내용에서 양 방향 통신에 대해 다루기로 한다.
designatedroom87.tistory.com/195?category=896469
'JAVA > Network' 카테고리의 다른 글
간단한 서버와 클라이언트 데이터를 thread를 이용하여 양방향 송/수신 (0) 2020.10.17 열려 있는 포트 번호를 체크하기 (0) 2020.10.14 InetAddress 클래스 (0) 2020.10.14 간단한 서버 클라이언트 만들기 (0) 2020.10.14 외부에서 가지고 온 데이터를 파일에 저장하기 (0) 2020.10.13