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

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),武勝網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:武勝等地區(qū)。武勝做網(wǎng)站價(jià)格咨詢:13518219792
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("客戶端說(shuō):" + 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對(duì)象參數(shù)的構(gòu)造函數(shù),接收對(duì)方信息。負(fù)責(zé)發(fā)送的類ServerWriteThread繼承Thread,并構(gòu)造一個(gè)DataInputStream對(duì)象和BufferedRead對(duì)象的雙參數(shù)的構(gòu)造函數(shù),負(fù)責(zé)發(fā)送消息。new ServerReadThread(dis).start();new ServerWriteThread(dos,br).start();開(kāi)啟兩個(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)整。
名稱欄目:JavaSocket服務(wù)器關(guān)鍵代碼配置手冊(cè)
網(wǎng)頁(yè)網(wǎng)址:http://www.dlmjj.cn/article/cdgisjg.html


咨詢
建站咨詢
