国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

利用Socket進行Java網絡編程(二)

瀏覽:107日期:2024-06-21 10:40:54
內容: 出自:天極網 郗旻 2002年11月11日 09:28 二、建立客戶端代碼相比服務器端,客戶端要簡單一些,客戶端只需用服務器所在機器的ip以及服務器的端口作為參數創建一個Socket對象。得到這個對象后,就可以用'建立服務器'部分介紹的方法實現數據的輸入和輸出。Socket socket = new Socket('168.160.12.42',9998);in = new BufferedReader(new InputStreamReader(socket.getInputStream()));out = new PrintWriter(socket.getOutputStream(),true); 以上的程序代碼建立了一個Socket對象,這個對象連接到ip地址為168.160.12.42的主機上、端口為9998的服務器對象。并且建立了輸入流和輸出流,分別對應服務器的輸出和客戶端的寫入。三、建立用戶界面讀者可以根據自己的喜好建立自己的用戶界面,這不是本文的重點。經過以上三個步驟,就可以建立一個比較簡單的對話程序。但是,為了使這個程序更加完善,應進行以下幾個改進:一、現在服務器只能服務一個客戶,也就是單線程的。可以將它改進為多線程服務器。try{ file://建立服務器 ServerSocket server = new ServerSocket(9998); int i=1; for(;;) {Socket incoming = server.accept();new ServerThread(incoming,i).start();i++; }}catch (IOException ex){ ex.printStackTrace(); } 循環檢測是否有客戶連接到服務器上,如果有,則創建一個線程來服務這個客戶,這個線程的名稱是ServerThread,這個類擴展了Thread類,它的編寫方法與前述的服務器的寫法相同。二、為了可以隨時得到對方傳送過來的消息,可以在服務器以及客戶端各建立一個獨立的線程來察看輸入流,如果輸入流中有輸入,則可以即時顯示出來。代碼如下:new Thread(){ public void run() {try{  while(true) {checkInput();sleep(1000);//每1000毫秒檢測一次 }}catch (InterruptedException ex) { }catch(IOException ex) {} }}.start();其中的checkInput()方法為private void checkInput() throws IOException{ String line; if((line=in.readLine())!=null) file://檢測輸入流中是否有新的數據t.setPartner(line); file://將數據流中的消息顯示出來} 通過以上改進,程序就可以比較好的運行了。 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
相關文章:
主站蜘蛛池模板: 广汉市| 广西| 巩留县| 香港 | 上栗县| 祁东县| 昆山市| 邹平县| 钟祥市| 拉孜县| 吉隆县| 云浮市| 桐庐县| 辽阳县| 洪雅县| 肥东县| 左贡县| 安阳县| 石林| 乌审旗| 乐昌市| 龙陵县| 白银市| 竹山县| 平顶山市| 包头市| 定襄县| 宜川县| 兴安盟| 北京市| 汪清县| 集安市| 克什克腾旗| 集贤县| 公主岭市| 电白县| 磴口县| 扶余县| 宁德市| 水城县| 东丰县|