用java.net包建立雙向通訊

利用java.net包提供的網絡能力。以有連接流通訊方式爲例,

在服務器端的操作爲一般爲:

   ⑴ 創建一個ServerSocket對象,在指定端口監聽客戶端發來的請求。

   ⑵ 在接收到請求時accept()方法將返回一個Socket對象。

   ⑶ 用上述Socket對象創建輸入、輸出流對象。

   ⑷ 通過輸入、輸出流與客戶交互。

   ⑸ 交互完畢,關閉輸入、輸出流與Socket。

   ⑹ 服務程序運行結束,關閉ServerSocket。

   實現代碼代碼類如:

try{

boolean flag=true;
Socket clientSocket=null;

ServerSocket serverSocket = new ServerSocket(0);
System.out.println("Server listen on: " +serverSocket.getLocalPort());

while(flag){
clientSocket=serverSocket.accept();
DataInputStream is=new DataInputStream( new bufferedInputStream(client
Socket.getInputStream()));
PrintStream os=new PrintStream( new bufferedOutputStream(clientSocket.
getOutputStream()));
// 處理Applet請求
os.close();
is.close();
clientSocket.close();
}
serverSocket.close();
}catch( IOException e){
System.err.println(" Exception: "+e);
}

   在客戶端的操作爲:

   ⑴ 創建Socket對象建立與服務器的連接。

   ⑵ 用該Socket對象創建輸入、輸出流。

   ⑶ 與服務器交互。

   ⑷ 交互完畢,關閉輸入、輸出流與Socket。

   實現代碼類如:


try {
Socket clientSocket =new Socket("serverName",7);
OutputStream os=clientSocket.getOutputStream();
DataInputStream is=new DataInputStream( clientSocket.getInputStream())
;
// 其它操作.
os.close();
is.close();
clientSocket.close();
}catch(Exception e){
System.err.println("Exception:"+e);
}

   這種方法只依賴於標準的Java網絡支持,不需要用到附加的軟件包或工具,
因此顯得相當簡潔和靈活,易於實現某些特殊的需要。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章