文章詳情頁
利用Socket進行Java網(wǎng)絡編程(一)
瀏覽:76日期:2024-06-21 14:18:33
內(nèi)容: 出自:天極網(wǎng) 郗旻 2002年11月12日 09:28 Socket是網(wǎng)絡上運行的兩個程序間雙向通訊的一端,它既可以接受請求,也可以發(fā)送請求,利用它可以較為方便的編寫網(wǎng)絡上數(shù)據(jù)的傳遞。在Java中,有專門的Socket類來處理用戶的請求和響應。利用Socket類的方法,就可以實現(xiàn)兩臺計算機之間的通訊。這里就介紹一下在Java中如何利用Socket進行網(wǎng)絡編程。 在Java中Socket可以理解為客戶端或者服務器端的一個特殊的對象,這個對象有兩個關鍵的方法,一個是getInputStream方法,另一個是getOutputStream方法。getInputStream方法可以得到一個輸入流,客戶端的Socket對象上的getInputStream方法得到的輸入流其實就是從服務器端發(fā)回的數(shù)據(jù)流。GetOutputStream方法得到一個輸出流,客戶端Socket對象上的getOutputStream方法返回的輸出流就是將要發(fā)送到服務器端的數(shù)據(jù)流,(其實是一個緩沖區(qū),暫時存儲將要發(fā)送過去的數(shù)據(jù))。程序可以對這些數(shù)據(jù)流根據(jù)需要進行進一步的封裝。本文的例子就對這些數(shù)據(jù)流進行了一定的封裝(關于封裝可以參考Java中流的實現(xiàn)部分)。為了更好的說明問題,這里舉了一個網(wǎng)上對話的例子,客戶端啟動以后,服務器會啟動一個線程來與客戶進行文字交流。要完成這個工作,需要完成三個部分的工作,以下依次說明:一、建立服務器類Java中有一個專門用來建立Socket服務器的類,名叫ServerSocket,可以用服務器需要使用的端口號作為參數(shù)來創(chuàng)建服務器對象。ServerSocket server = new ServerSocket(9998) 這條語句創(chuàng)建了一個服務器對象,這個服務器使用9998號端口。當一個客戶端程序建立一個Socket連接,所連接的端口號為9998時,服務器對象server便響應這個連接,并且server.accept()方法會創(chuàng)建一個Socket對象。服務器端便可以利用這個Socket對象與客戶進行通訊。Socket incoming = server.accept() 進而得到輸入流和輸出流,并進行封裝BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream()));PrintWriter out = new PrintWriter(incoming.getOutputStream(),true); 隨后,就可以使用in.readLine()方法得到客戶端的輸入,也可以使用out.println()方法向客戶端發(fā)送數(shù)據(jù)。從而可以根據(jù)程序的需要對客戶端的不同請求進行回應。在所有通訊結(jié)束以后應該關閉這兩個數(shù)據(jù)流,關閉的順序是先關閉輸出流,再關閉輸入流,即使用 out.close();in.close(); Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標簽:
Java
相關文章:
1. Java網(wǎng)絡編程UDP實現(xiàn)消息發(fā)送及聊天2. Python實現(xiàn)網(wǎng)絡自動化eNSP3. JAVA教程 第八講 Java網(wǎng)絡編程(三)4. Java網(wǎng)絡編程TCP實現(xiàn)聊天功能5. Docker初級網(wǎng)絡端口映射的配置6. php常見的網(wǎng)絡攻擊及防御方法7. uniapp 手機驗證碼輸入框?qū)崿F(xiàn)代碼(隨機數(shù)、倒計時、隱藏手機號碼中間四位)可以直接使用8. JAVA教程 第八講 Java網(wǎng)絡編程(二)9. CSS可以做的幾個令你嘆為觀止的實例分享10. Ajax請求超時與網(wǎng)絡異常處理圖文詳解
排行榜
