1. 程式人生 > >JAVA網路程式設計實現基於TCP協議的時間服務(向伺服器查詢當前時間)

JAVA網路程式設計實現基於TCP協議的時間服務(向伺服器查詢當前時間)

服務端程式:

package doc_02_tcp.server;

import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 模組說明: 伺服器端程式
 * 
 */
public class TimeServer {
    public static void main(String[] args) {
        try
{ // 列印本機ip地址 InetAddress address = InetAddress.getLocalHost(); System.out.println(address); // 建立一個serversocket,監聽客戶端請求 ServerSocket ss = new ServerSocket(9999); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); // 採用迴圈不斷接受來自客戶端的請求
while (true) { Socket socket = ss.accept(); PrintWriter out = new PrintWriter(socket.getOutputStream()); out.println(sdf.format(new Date())); out.flush(); out.close(); socket.close(); } } catch
(Exception e) { e.printStackTrace(); } } }

客戶端程式:

package doc_02_tcp.client;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

/**
 * 模組說明: 客戶端程式
 * 
 */
public class TimeClient {
    public static void main(String[] args) {
        try {
            String localhost = String.valueOf(InetAddress.getLocalHost()).split("/")[1];
            Socket socket = new Socket(localhost, 9999);
            BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            String currentTime = input.readLine();
            System.out.println("current time from server:" + currentTime);
            input.close();
            socket.close();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}