본문 바로가기

Java SE/Socket 02

Socket 02

클라이언트 측의 코드만 약각 수정하여 키보드로부터 입력된 숫자를 서버에 전송하여 구구단이 출력되도록 한다.

클라이언트 측

import java.net.*;
import java.io.*;

class  GuguClient {
 public static void main(String[] args) throws Exception {

  //InetAddress ia = InetAddress.getLocalHost();

  Socket soc = new Socket("localhost", 1234);

  PrintWriter pw = new PrintWriter(new OutputStreamWriter(soc.getOutputStream()));
  BufferedReader br = new BufferedReader(new InputStreamReader(soc.getInputStream()));
 
  BufferedReader keyboard = new BufferedReader(new InputStreamReader(System.in));
  System.out.print("서버로 전송할 숫자를 입력해 주세요 ");
  String dan = keyboard.readLine();

  pw.println(dan);
  pw.flush();

  String line = null;
  while((line=br.readLine())!= null) {
   System.out.println(line);
  }
 }
}


서버측 (변경된 내용 없음)

import java.net.*;
import java.io.*;

class  GuguServer {
 public static void main(String[] args) throws Exception {

  ServerSocket ss = new ServerSocket(1234);
  System.out.println("서버 실행중....");

  Socket soc = ss.accept();

  BufferedReader br = new BufferedReader(new InputStreamReader(soc.getInputStream()));
  PrintWriter pw = new PrintWriter(new OutputStreamWriter(soc.getOutputStream()));

  int dan = Integer.parseInt(br.readLine());

  String str = "";
  for(int i=1;i<=9;i++) {
   str += dan + " x " + i + " = " + (dan*i) + "\n";
  }

  pw.println(str);
  pw.flush();

  System.out.println("서버 종료됨");
 }
}