socket是套接字,多指傳輸層網絡接口。
Socket和SocketServer是基于套接字的服務端和客戶端實現
webSocket,是一個應用層協議,說的是,目前瀏覽器實現的一套通信協議,用來解決之前HTTP,請求響應模型不合適的場合。
Socket和SocketServer是服務端和客戶端的區別
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()方法關閉流和流套接字。