1. 程式人生 > >Java中伺服器端與客戶端程式設計

Java中伺服器端與客戶端程式設計

1. 伺服器端程式設計

在伺服器端,利用ServerSocket類的建構函式ServerSocket(int port)建立一個ServerSocket類的物件,port引數傳遞埠,這個埠就是伺服器監聽連線請求的埠,如果在這時出現錯誤將丟擲IOException異常物件,否則將建立ServerSocket物件並開始準備接收連線請求。
服務程式從呼叫ServerSocket的accept()方法開始,直到連線建立。在建立連線後,accept()返回一個最近建立的Socket物件,該Socket物件綁定了客戶程式的IP地址或埠號。

2.客戶端程式設計

當客戶程式需要與伺服器程式通訊時,需在客戶機建立一個Socket物件。Socket類有建構函式Socket(InetAddress addr,int port)和Socket(String host,intport),兩個建構函式都建立了一個基於Socket的連線伺服器端流套接字的流套接字。對於第一個InetAd-dress子類物件通過addr引數獲得伺服器主機的IP地址,對於第二個函式host引數包被分配到InetAddress物件中,如果沒有IP地址與host引數相一致,那麼將丟擲UnknownHostException異常物件。兩個函式都通過引數port獲得伺服器的埠號。假設已經建立連線了,網路API將在客戶端基於Socket的流套接字中捆綁客戶程式的IP地址和任意一個埠號,否則兩個函式都會丟擲一個IOException物件。
如果建立了一個Socket物件,那麼它可通過get-InputStream()方法從服務程式獲得輸入流讀傳送來的資訊,也可通過呼叫getOutputStream()方法獲得輸出流來發送訊息。在讀寫活動完成之後,客戶程式呼叫close()方法關閉流和流套接字。