package practice0509Testok;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class ServerTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ServerSocket serverSocket = null;
Socket socket1 = null;
BufferedReader br1 = null;
FileWriter fw1 = null;
FileWriter fw2 = null;
PrintWriter pw = null;
try {
serverSocket = new ServerSocket(9999);
System.out.println("응답대기중...");
socket1 = serverSocket.accept();
System.out.println("연결되었어요..");
br1 = new BufferedReader(new InputStreamReader(socket1.getInputStream()));
pw = new PrintWriter(socket1.getOutputStream());
String storeClientMsg = "";
String storeServerMsg = "";
while (true) {
String client1 = br1.readLine();
storeClientMsg += client1 + "\n";
System.out.println("Client >>" + client1);
if (client1.equalsIgnoreCase("bye")) {
System.out.println("클라이언트가 채팅을 종료했습니다");
fw1 = new FileWriter("Clientchat_" + generateFileName() + ".txt");
fw1.write(storeClientMsg);
fw2 = new FileWriter("Serverchat_" + generateFileName() + ".txt");
fw2.write(storeServerMsg);
break;
}
System.out.print("Server >>");
String sendMsg = sc.nextLine();
storeServerMsg += sendMsg + "\n";
pw.println(sendMsg);
pw.flush();
}
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
try {
sc.close();
serverSocket.close();
socket1.close();
br1.close();
pw.close();
fw1.close();
fw2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private static String generateFileName() {
Date now = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
String formattedDate = sdf.format(now);
return formattedDate;
}
}
package practice0509Testok;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.Scanner;
public class ClientTest1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Socket socket = null;
PrintWriter pw = null;
BufferedReader br = null;
try {
socket = new Socket("localhost", 9999);
System.out.println("서버에 접속되었습니다");
pw = new PrintWriter(socket.getOutputStream());
br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
while (true) {
System.out.print("Client >> ");
String sendMsg = sc.nextLine();
if (sendMsg.equalsIgnoreCase("bye")) {
pw.println(sendMsg);
pw.flush();
break;
}
pw.println(sendMsg);
pw.flush();
String server1 = br.readLine();
System.out.println("Server >>" + server1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
sc.close();
socket.close();
br.close();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}



'수업시간 JAVA > 문제' 카테고리의 다른 글
멀티채팅하기 (0) | 2023.05.18 |
---|---|
스레드로 채팅딜레이없이 바로바로 치게하기 (0) | 2023.05.10 |
Date클래스 노가다로 만들어보기 (0) | 2023.05.10 |
스레드 join+currentTimeMillis 써서 달리기시합 (0) | 2023.05.08 |
서버 - 클라1 + 클라2 소통 (0) | 2023.05.08 |