利用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(clientSocket.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網絡支持,不需要用到附加的軟件包或工具, 因此顯得相當簡潔和靈活,易于實現某些特殊的需要。但在另一方面,服務器端對進入請求以及客戶端對返回結果的分析工作量較大。