溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java Socket服務(wù)器關(guān)鍵代碼配置的實(shí)例分析

發(fā)布時(shí)間:2021-10-23 17:56:21 來源:億速云 閱讀:141 作者:柒染 欄目:編程語言

這篇文章給大家介紹Java Socket服務(wù)器關(guān)鍵代碼配置的實(shí)例分析,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

Java Socket服務(wù)器在很多人使用的時(shí)候會(huì)出現(xiàn)或多或少的問題,其實(shí)在關(guān)鍵代碼中有不少的問題需要我們處理,下面我們就看看如何才能更好的使用Java Socket服務(wù)器的相關(guān)代碼。

Procedure2相比procedure1加入了多線程的部分,一個(gè)線程負(fù)責(zé)專門去接受消息,另一個(gè)負(fù)責(zé)發(fā)送消息。當(dāng)服務(wù)器端負(fù)責(zé)接收的線程因?yàn)閞eadUTF()被阻塞不能發(fā)送消息時(shí),負(fù)責(zé)發(fā)送消息的線程讓服務(wù)器端也能發(fā)送消息。同樣的原理,客戶端也如此。

服務(wù)器端加入的關(guān)鍵代碼如下:

class ServerReadThread extends Thread{  private DataInputStream dis;  public ServerReadThread(DataInputStream dis){  this.dis = dis;  }  public void run(){  String info;  try{  while(true){  info = dis.readUTF();  System.out.println("客戶端說:" + info);  if(info.equals("goodbye")){  System.out.println("客戶端拜拜了!");  System.exit(0);  }  }  }catch(IOException e){  e.printStackTrace();  }  }  }  class ServerWriteThread extends Thread{  private DataOutputStream dos;  private BufferedReader br;  public ServerWriteThread(DataOutputStream dos,BufferedReader br){  this.dos = dos;  this.br = br;  }  public void run(){  String info;  try{  while(true){  info = br.readLine();  dos.writeUTF(info);  if(info.equals("bye")){  System.exit(0);  }  }  }catch(IOException e){  e.printStackTrace();  }  }  }

負(fù)責(zé)接受的類ServerReadThread繼承Thread,并構(gòu)造一個(gè)DataInputStream對象參數(shù)的構(gòu)造函數(shù),接收對方信息。負(fù)責(zé)發(fā)送的類ServerWriteThread繼承Thread,并構(gòu)造一個(gè)DataInputStream對象和BufferedRead對象的雙參數(shù)的構(gòu)造函數(shù),負(fù)責(zé)發(fā)送消息。new ServerReadThread(dis).start();new ServerWriteThread(dos,br).start();開啟兩個(gè)線程??蛻舳嗽砼c服務(wù)器端類似,就不做更詳細(xì)的講解。

思考:procedure2相比procedure1已經(jīng)實(shí)現(xiàn)了多線程聊天,雖只是運(yùn)行在控制臺(tái)上,但麻雀雖小,五臟俱全,這已經(jīng)體現(xiàn)出了java Socket編程以及多線程的核心思想,此課程設(shè)計(jì)的目的已經(jīng)達(dá)到。Java Socket服務(wù)器為實(shí)現(xiàn)更加人性化的效果,我引入javaGUI的組件awt,與之相關(guān)的技術(shù)也就隨之引入了,比如基于事件的驅(qū)動(dòng),還有awt各個(gè)組件之間的調(diào)用。與此同時(shí),代碼的分布和組織結(jié)構(gòu)都要做相應(yīng)的調(diào)整。

關(guān)于Java Socket服務(wù)器關(guān)鍵代碼配置的實(shí)例分析就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI