Java로 전체 스택 파일 콘텐츠 시스템 작성
6380 단어 serverfullstackprogrammingjava
따라서 클라이언트는 파일 이름을 제공하여 파일 내용을 보내도록 서버에 요청합니다. 서버에 몇 개의 파일이 있습니다. 기존 파일에서 서버는 요청된 파일을 열고 클라이언트는 파일 내용과 함께 파일 이름을 표시하거나 기본적으로 *원격 파일 내용 표시 시스템*을 만듭니다.
분석
Remote File Content Display System이라는 용어를 제쳐두고 문제에 대해 생각해 보면 시스템에는 백엔드와 프런트엔드를 각각 관리하는 서버와 클라이언트 프로그램이 필요하고 소켓을 사용하여 둘 다 통합한다는 것을 알게 됩니다.
추가 분석과 가장 중요한 문제 분석 후, 문제를 해결하기 위해 각 시스템이 수행해야 하는 작업은 다음과 같습니다.
서버 측 :
콘텐츠를 읽고 출력 스트림을 사용하여 클라이언트에 보내려면
그런 파일 .
고객 입장에서 :
출력 스트림을 통해 서버.
클라이언트/사용자에게 .
시스템의 흐름
서버를 작성해 보겠습니다.
import java.io.*;
import java.net.*;
public class Server {
public static void main(String[] args) {
try {
ServerSocket ss = new ServerSocket(6666); //Creating the Server Socker Instance
Socket s = ss.accept(); //Establishes Connection
System.out.println("Server is up and running..");
DataInputStream dis = new DataInputStream(s.getInputStream()); //Get's data from Client
String fileName = (String)dis.readUTF(); //Converting to String
fileName = fileName + ".txt";
File folder = new File( "C:/Users/Saumya/Desktop/JavaProject/AllFiles"); //Assingning the location to file object
File[] listOfFiles = folder.listFiles(); //Making the file content list
DataOutputStream dout = new DataOutputStream(s.getOutputStream()); //Sends data to the Client
for (File file : listOfFiles) { //Linear Searching the file
if (fileName.equalsIgnoreCase(file.getName())) {
System.out.println("Showing it to the Client :" );
System.out.println();
dout.writeUTF( "File Name : " + fileName ); //Sending the file name
dout.writeUTF( "Content : " );
BufferedReader br = new BufferedReader(new FileReader(file));
String st;
while ((st = br.readLine()) != null) {
dout.writeUTF( st ); //Sending the File Content
}
return ;
}
}
dout.writeUTF( "Sorry there is no such file !" ); //If file is no found
dout.flush();
dout.close();
ss.close(); //Shuts down the server
} catch (Exception e) {System.out.println(e);}
}
}
클라이언트 측을 작성해 봅시다.
import java.io.*;
import java.net.*;
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
try {
Socket s = new Socket("localhost", 6666); //Creating the Socket with the ServerSocket Port
Scanner sc = new Scanner(System.in);
DataOutputStream dout = new DataOutputStream(s.getOutputStream()); //Sends the data to the server
System.out.println("Enter the name of file : ");
String fileName = sc.next(); //Taking the file name as input
String notFoundMsg = "Sorry there is no such file !";
dout.writeUTF( fileName ); //Sending the name to server
DataInputStream dis = new DataInputStream(s.getInputStream()); //Receives data from server
System.out.println();
String receivedData1 = (String)dis.readUTF();
System.out.println(receivedData1);
if (receivedData1.equals( notFoundMsg )) { //Stopes receiving content if file not found
s.close();
} else {
String receivedData2 = (String)dis.readUTF();
System.out.println(receivedData2);
String receivedData3 = (String)dis.readUTF();
System.out.println(receivedData3);
}
dout.flush();
dout.close();
System.out.println("Server Stoped ");
s.close(); //Stops the server
} catch (Exception e) {System.out.println(e);}
}
}
어떻게 작동하는지 봅시다
따라서 더 나은 컨텍스트를 위해 두 개의 명령 프롬프트 셸을 사용하고 있습니다. 하나는 실행 중인 위치
server.java
및 client.java
검색된 파일이 존재하는 경우의 시나리오를 살펴보겠습니다.
서버 스냅:
클라이언트 스냅:
검색된 파일이 존재하지 않는 경우의 시나리오를 살펴보겠습니다.
서버 스냅:
클라이언트 스냅:
대박 ! Java를 사용하여 원격 파일 콘텐츠 표시 시스템을 만들었습니다. 🔥🙌
또한 Future Driven에서 Youtube에 컴퓨터 과학 관련 콘텐츠를 만들고 내 개인 사이트에 블로그를 작성합니다. 🧡✔
나는 당신이 무언가를 좋아하고 배웠기를 바라며 댓글을 달고 당신의 생각을 알려주세요 .🤞😃
Reference
이 문제에 관하여(Java로 전체 스택 파일 콘텐츠 시스템 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/saumyanayak/writing-a-full-stack-file-content-system-in-java-2517텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)