본문 바로가기

콩's EDUCATION/콩's JAVA_RUN

Java 문제 8

TcpServerTest


1. 클라이언트 ip 년도 월 일 log.txt 파일 생성 ("", true)

2. 해당 ip 클라이언트 접속 시, 분, 초 기록 저장


TcpClient

 


package TcpServer.project;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

public class TcpClient {
 public static void main(String[] args) throws UnknownHostException, IOException {
 Socket s = new Socket("192.168.103.163",9999);
 System.out.println("서버와 연결되었습니다.");
 // 서버 : PrintWriter => String출력
 InputStream i = s.getInputStream();
 Scanner si = new Scanner(i);
 System.out.println("서버로부터 전송받은 데이터 ="+si.nextLine());
 s.getInputStream();
 s.close();

 // 3. 통신 = 입출력, 서버 클라이언트 입출력 구현 생략
 s.close();
 }
}

 

TcpServerFileLogTest

 

package TcpServer.project;

import java.io.FileWriter;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TcpServerFileLogTest {
 public static void main(String[] args) throws IOException {
  // 1. 서버 소켓 생성

  ServerSocket server = new ServerSocket(9999);
  System.out.println("서버는 9999포트에서 실행중입니다. ");

  while (true) {
   Socket s = server.accept();
   // 클라이언트 ip조회
   // 클라이언트 최초 서버 접속 날짜 조회
   String client_ip = s.getInetAddress().getHostAddress();
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy년MM월dd일");
   String client_day = sdf.format(new Date()); // 1/1000초 단위
   String client_logfile = client_ip + " " + client_day + "_log.txt";

   FileWriter fw = new FileWriter(client_logfile, true);
   SimpleDateFormat sdf2 = new SimpleDateFormat("HH시mm분ss초");
   String client_time = sdf2.format(new Date());
   fw.write(client_time + "에 접속하셨습니다. \n");
   fw.close();
  }
 }
}

 

 

TcpClient.java

 

TcpServerTest.java