程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 通過Java.net包建立雙向通訊

通過Java.net包建立雙向通訊

編輯:關於JAVA

利用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網絡支持,不需要用到附加的軟件包或工具,因此顯得相當簡潔和靈活,易於實現某些特殊的需要。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved