1. 程式人生 > >第四次考核

第四次考核

碼雲地址:https://gitee.com/sfr123/fourth_assessment/tree/master

使用套接寫連線編寫一個簡單的聊天室程式,客戶端主函式放在Client_Main.java檔案中,伺服器端主函式放在Server_Main.java檔案中 

要求: 

  • 1.客戶端從控制檯進行輸入,並將客戶端的輸出內容和時間儲存到“學號.txt”檔案中
  • 2.伺服器端讀取到客戶端的程式後,給客戶端以迴應,並將客戶端的輸入內容與服務端的輸出內容、時間儲存到文字檔案中
  • 3.要求伺服器端可以實現同時與多個客戶端進行通訊,與每一個客戶端通訊的內容,儲存為一個“學號_ip.txt”的檔案
  • 4.4.提交檔案結果包括:程式碼,通訊後生成的txt檔案

步驟:

伺服器建立ServerSocket物件,使用accept()方法,客戶端建立Socket物件和伺服器連線

客戶端程式碼

import java.net.*;
import java.io.*;
public class Client_Main{
    public static void main (String args[]){
        String [] mess ={"你好"};
        Socket mysocket;
        DataInputStream in=null
; DataOutputStream out=null; try{ mysocket = new Socket("127.0.0.1",2010); in = new DataInputStream(mysocket.getInputStream()); out = new DataOutputStream(mysocket.getOutputStream()); for(int i=0;i<mess.length;i++){ out.writeUTF(mess[i]); String s
=in.readUTF(); System.out.println("客戶端收到伺服器的回答:"+s); Thread.sleep(500); } } catch(Exception e){ System.out.println(" 伺服器已斷開"+e); } } }

伺服器

import java.net.*;
import java.io.*;
public class Server_Main{
    public static void main(String args[]){
        String [] answer = {"您好"};
        ServerSocket serverForClient = null;
        Socket socketOnServer = null;
        DataOutputStream out=null;
        DataInputStream in=null;
        try{
            System.out.println("等待客戶呼叫");
            socketOnServer = serverForClient.accept();
            out = new DataOutputStream(socketOnServer.getOutputStream());
            in = new DataInputStream(socketOnServer.getInputStream());
            for(int i=0;i<answer.length;i++){
                String s = in.readUTF();
                System.out.println("伺服器收到客戶的提問:"+s);
                out.writeUTF(answer[i]);
                Thread.sleep(500);
            }
        }
        catch(Exception e){
            System.out.println("客戶已斷開"+e);
        }
    }
}

程式碼參考書上來寫的,和題目有些不符,然後沒寫執行結果。知識掌握的不夠好,需要多練習。