Server3.java
import java.net.*;
import java.io.*;
public class Server3{
? private DataInputStream reader;
? private DataOutputStream writer;
? private ServerSocket server;
? private Socket socket;
? public Server3(){}
? void startServer(){
??? try{
????? server=new ServerSocket(7777);
????? System.out.println("服務器套接字被成功創建");
????? while(true){
??????? System.out.println("等待客戶機連擊請求");
??????? socket=server.accept();
??????? System.out.println("連接客戶機完畢");
??????? reader=new DataInputStream(socket.getInputStream());
??????? writer=new DataOutputStream(socket.getOutputStream());
??????? getCommand();
????? }
??? }catch(Exception e){
????? System.out.println(e);?
??? }
? }
? void getCommand(){
??? try{
????? while(true){
??????? String fileName=reader.readUTF();
??????? writer.writeUTF(getFileInfo(fileName));
??????? writer.flush();
??????? System.out.println(fileName +"的信息傳完畢");
????? }
??? }catch(Exception e){
??? }finally{?
????? System.out.println("與客戶機的連接中斷");
????? try{
??????? if(reader!=null) reader.close();
??????? if(writer!=null) writer.close();
??????? if(socket!=null) socket.close();
??????? reader=null; writer=null; socket=null;
????? }catch(IOException ie){}
??? }
? }
? String getFileInfo(String fileName){
??? String fileInfo="";
??? try{
????? FileReader fr=new FileReader(fileName);
????? BufferedReader br=new BufferedReader(fr);
????? String temp;
????? while((temp=br.readLine())!=null)
??????? fileInfo+= temp+"\n";
????? br.close();
??? }catch(FileNotFoundException fe){
????? fileInfo="文件不存在";?
??? }catch(IOException ie){}?
??? return fileInfo;
? }
? public static void main(String[] args){
??? Server3 server=new Server3();
??? server.startServer();
? }
}
Client3.java
import java.awt.*;
import java.net.*;
import java.io.*;
import java.awt.event.*;
public class Client3 extends Frame{
? private TextArea msgView=new TextArea();
? private TextField sendBox=new TextField();
? private DataInputStream reader;
? private DataOutputStream writer;
? Socket socket;
? public Client3(String title){
??? super(title);
??? msgView.setEditable(false);
??? add(msgView,"Center");
??? add(sendBox,"South");
??? sendBox.addActionListener(new ActionListener(){
????? public void actionPerformed(ActionEvent ae){
??????? try{
????????? writer.writeUTF(sendBox.getText());
????????? writer.flush();
????????? String fileInfo=reader.readUTF();
????????? msgView.setText("< " + sendBox.getText()+"的內容 >\n\n");
????????? msgView.append(fileInfo);
????????? sendBox.setText("");
??????? }catch(Exception ie){}
????? }
??? });
??? pack();
? }
? private void connect(){
??? try{
????? msgView.append("嘗試與服務器連接\n");
????? socket=new Socket("127.0.0.1", 7777);
????? msgView.append("連接完畢豐... 請輸入文件名\n");
????? reader=new DataInputStream(socket.getInputStream());
????? writer=new DataOutputStream(socket.getOutputStream());
??? }catch(Exception e){
????? msgView.append("連接失敗..");
??? }
? }
? public static void main(String[] args){
??? Client3 client=new Client3("查看服務器系統文件");
??? client.setVisible(true);
??? client.connect();
? }
}