久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

利用Socket進(jìn)行Java網(wǎng)絡(luò)編程(一)

瀏覽:108日期:2024-06-21 14:18:33
內(nèi)容: 出自:天極網(wǎng) 郗旻 2002年11月12日 09:28 Socket是網(wǎng)絡(luò)上運(yùn)行的兩個(gè)程序間雙向通訊的一端,它既可以接受請(qǐng)求,也可以發(fā)送請(qǐng)求,利用它可以較為方便的編寫(xiě)網(wǎng)絡(luò)上數(shù)據(jù)的傳遞。在Java中,有專門的Socket類來(lái)處理用戶的請(qǐng)求和響應(yīng)。利用Socket類的方法,就可以實(shí)現(xiàn)兩臺(tái)計(jì)算機(jī)之間的通訊。這里就介紹一下在Java中如何利用Socket進(jìn)行網(wǎng)絡(luò)編程。 在Java中Socket可以理解為客戶端或者服務(wù)器端的一個(gè)特殊的對(duì)象,這個(gè)對(duì)象有兩個(gè)關(guān)鍵的方法,一個(gè)是getInputStream方法,另一個(gè)是getOutputStream方法。getInputStream方法可以得到一個(gè)輸入流,客戶端的Socket對(duì)象上的getInputStream方法得到的輸入流其實(shí)就是從服務(wù)器端發(fā)回的數(shù)據(jù)流。GetOutputStream方法得到一個(gè)輸出流,客戶端Socket對(duì)象上的getOutputStream方法返回的輸出流就是將要發(fā)送到服務(wù)器端的數(shù)據(jù)流,(其實(shí)是一個(gè)緩沖區(qū),暫時(shí)存儲(chǔ)將要發(fā)送過(guò)去的數(shù)據(jù))。程序可以對(duì)這些數(shù)據(jù)流根據(jù)需要進(jìn)行進(jìn)一步的封裝。本文的例子就對(duì)這些數(shù)據(jù)流進(jìn)行了一定的封裝(關(guān)于封裝可以參考Java中流的實(shí)現(xiàn)部分)。為了更好的說(shuō)明問(wèn)題,這里舉了一個(gè)網(wǎng)上對(duì)話的例子,客戶端啟動(dòng)以后,服務(wù)器會(huì)啟動(dòng)一個(gè)線程來(lái)與客戶進(jìn)行文字交流。要完成這個(gè)工作,需要完成三個(gè)部分的工作,以下依次說(shuō)明:一、建立服務(wù)器類Java中有一個(gè)專門用來(lái)建立Socket服務(wù)器的類,名叫ServerSocket,可以用服務(wù)器需要使用的端口號(hào)作為參數(shù)來(lái)創(chuàng)建服務(wù)器對(duì)象。ServerSocket server = new ServerSocket(9998) 這條語(yǔ)句創(chuàng)建了一個(gè)服務(wù)器對(duì)象,這個(gè)服務(wù)器使用9998號(hào)端口。當(dāng)一個(gè)客戶端程序建立一個(gè)Socket連接,所連接的端口號(hào)為9998時(shí),服務(wù)器對(duì)象server便響應(yīng)這個(gè)連接,并且server.accept()方法會(huì)創(chuàng)建一個(gè)Socket對(duì)象。服務(wù)器端便可以利用這個(gè)Socket對(duì)象與客戶進(jìn)行通訊。Socket incoming = server.accept() 進(jìn)而得到輸入流和輸出流,并進(jìn)行封裝BufferedReader in = new BufferedReader(new InputStreamReader(incoming.getInputStream()));PrintWriter out = new PrintWriter(incoming.getOutputStream(),true); 隨后,就可以使用in.readLine()方法得到客戶端的輸入,也可以使用out.println()方法向客戶端發(fā)送數(shù)據(jù)。從而可以根據(jù)程序的需要對(duì)客戶端的不同請(qǐng)求進(jìn)行回應(yīng)。在所有通訊結(jié)束以后應(yīng)該關(guān)閉這兩個(gè)數(shù)據(jù)流,關(guān)閉的順序是先關(guān)閉輸出流,再關(guān)閉輸入流,即使用 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
標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 临夏县| 蒲江县| 海丰县| 齐齐哈尔市| 新密市| 交城县| 上饶市| 鹤峰县| 宜阳县| 铅山县| 高尔夫| 邵阳县| 吉林省| 太白县| 枣庄市| 五莲县| 聊城市| 衡东县| 陇西县| 桐柏县| 碌曲县| 绥芬河市| 右玉县| 桃源县| 武鸣县| 哈巴河县| 平塘县| 五常市| 合肥市| 莒南县| 丰镇市| 沭阳县| 海门市| 新昌县| 皮山县| 巧家县| 揭阳市| 宁波市| 九龙城区| 凯里市| 鹿邑县|