文章詳情頁(yè)
利用Socket進(jìn)行Java網(wǎng)絡(luò)編程(二)
瀏覽:80日期:2024-06-21 10:40:54
內(nèi)容: 出自:天極網(wǎng) 郗旻 2002年11月11日 09:28 二、建立客戶端代碼相比服務(wù)器端,客戶端要簡(jiǎn)單一些,客戶端只需用服務(wù)器所在機(jī)器的ip以及服務(wù)器的端口作為參數(shù)創(chuàng)建一個(gè)Socket對(duì)象。得到這個(gè)對(duì)象后,就可以用'建立服務(wù)器'部分介紹的方法實(shí)現(xiàn)數(shù)據(jù)的輸入和輸出。Socket socket = new Socket('168.160.12.42',9998);in = new BufferedReader(new InputStreamReader(socket.getInputStream()));out = new PrintWriter(socket.getOutputStream(),true); 以上的程序代碼建立了一個(gè)Socket對(duì)象,這個(gè)對(duì)象連接到ip地址為168.160.12.42的主機(jī)上、端口為9998的服務(wù)器對(duì)象。并且建立了輸入流和輸出流,分別對(duì)應(yīng)服務(wù)器的輸出和客戶端的寫入。三、建立用戶界面讀者可以根據(jù)自己的喜好建立自己的用戶界面,這不是本文的重點(diǎn)。經(jīng)過(guò)以上三個(gè)步驟,就可以建立一個(gè)比較簡(jiǎn)單的對(duì)話程序。但是,為了使這個(gè)程序更加完善,應(yīng)進(jìn)行以下幾個(gè)改進(jìn):一、現(xiàn)在服務(wù)器只能服務(wù)一個(gè)客戶,也就是單線程的。可以將它改進(jìn)為多線程服務(wù)器。try{ file://建立服務(wù)器 ServerSocket server = new ServerSocket(9998); int i=1; for(;;) {Socket incoming = server.accept();new ServerThread(incoming,i).start();i++; }}catch (IOException ex){ ex.printStackTrace(); } 循環(huán)檢測(cè)是否有客戶連接到服務(wù)器上,如果有,則創(chuàng)建一個(gè)線程來(lái)服務(wù)這個(gè)客戶,這個(gè)線程的名稱是ServerThread,這個(gè)類擴(kuò)展了Thread類,它的編寫方法與前述的服務(wù)器的寫法相同。二、為了可以隨時(shí)得到對(duì)方傳送過(guò)來(lái)的消息,可以在服務(wù)器以及客戶端各建立一個(gè)獨(dú)立的線程來(lái)察看輸入流,如果輸入流中有輸入,則可以即時(shí)顯示出來(lái)。代碼如下:new Thread(){ public void run() {try{ while(true) {checkInput();sleep(1000);//每1000毫秒檢測(cè)一次 }}catch (InterruptedException ex) { }catch(IOException ex) {} }}.start();其中的checkInput()方法為private void checkInput() throws IOException{ String line; if((line=in.readLine())!=null) file://檢測(cè)輸入流中是否有新的數(shù)據(jù)t.setPartner(line); file://將數(shù)據(jù)流中的消息顯示出來(lái)} 通過(guò)以上改進(jìn),程序就可以比較好的運(yùn)行了。 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)文章:
1. Java實(shí)現(xiàn)基于http協(xié)議的網(wǎng)絡(luò)文件下載2. IntelliJ IDEA配置Tomcat服務(wù)器的方法3. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究4. CentOS郵件服務(wù)器搭建系列——用 SSL 對(duì)郵件加密的支持5. ASP腳本組件實(shí)現(xiàn)服務(wù)器重啟6. Docker初級(jí)網(wǎng)絡(luò)端口映射的配置7. vue的ssr服務(wù)端渲染示例詳解8. Ajax請(qǐng)求超時(shí)與網(wǎng)絡(luò)異常處理圖文詳解9. PHP使用swoole編寫簡(jiǎn)單的echo服務(wù)器示例10. python 服務(wù)器運(yùn)行代碼報(bào)錯(cuò)ModuleNotFoundError的解決辦法
排行榜
