新聞中心
Java Socket對象需要我們大家詳細的學習,相關的問題一直在困擾著我們。下面我們就看看如何才能更好的使用Java Socket對象。那么首先我們就從原理來看一看。

創(chuàng)新互聯公司是一家以網絡技術公司,為中小企業(yè)提供網站維護、成都網站建設、成都做網站、網站備案、服務器租用、域名申請、軟件開發(fā)、小程序開發(fā)等企業(yè)互聯網相關業(yè)務,是一家有著豐富的互聯網運營推廣經驗的科技公司,有著多年的網站建站經驗,致力于幫助中小企業(yè)在互聯網讓打出自已的品牌和口碑,讓企業(yè)在互聯網上打開一個面向全國乃至全球的業(yè)務窗口:建站聯系熱線:028-86922220
這個設計原理非常類似于平時打電話進行通訊:#t#
(1)首先通訊雙方各有一臺電話機,在上述模型中就是Socket;
(2)通訊一方拔打電話,試圖建立連接,在上述模型中就是客戶端建立Java Socket對象;另一方隨時監(jiān)聽有沒有呼叫,當有呼叫到來時,摘機,在上述模型中就是在服務器端建立一個Java Socket對象,然后用其accept()方法監(jiān)聽客戶端的連接請求,當有連接請求時accept方法返回客戶端的Socket,于是雙方就建立起連接;
(3)雙方通話,過程中雙方都可以說和聽,在上述模型中,每個Socket可以利用輸入輸出流進行讀和寫兩種操作;在電話中一方聽到的是對方說出的,反之亦然;上述模型中,一方讀出的也是對方寫入的,而寫入的則是對方要讀出的
(4)掛斷。
建立Socket通信模型
首先,在服務器端建立一個ServerSocket對象,用于監(jiān)聽客戶端的連接請求:
- ServerSocket server;try{server=new ServerSocket(4321);}
- catch(Exception e){System.out.println("Error:"+e);}
在服務器端建立ServerSocket對象時必須進行異常處理,以便程序出錯時及時作出響應。生成ServerSocket對象時必須選擇一個端口注冊,以和其它服務器程序分開,使互不干擾。應使用1024以上的端口進行通信,以免和常規(guī)通信發(fā)生端口沖突。
其次,在服務器端調用ServerSocket的accept()方法進行監(jiān)聽,等待其它程序的連接請求。在連接請求收到之前一直阻塞調用線程,當有一個連接請求時,返回請求連接的Java Socket對象:
- Socket socket;
- try{socket=server.accept();}
- catch(Exception e){System.out.println("Error:"+e);}
當接到一個連接請求時,accept方法返回客戶端的socket對象,于是連接成功。正常情況下,通過交換,由另外的線程去處理該連接,而server釋放出來繼續(xù)監(jiān)聽下一個連接請求。
最后,在客戶端建立一個Java Socket對象,請求建立連接:
- Socket socket;
- try{socket=new Socket("Server Nane",4321);}
- catch(Exception e){System.out.println("Error:"+e);}
在客戶端建立Java Socket對象時也必須時行異常處理,主機名和端口號與連接的服務器名和提供該服務的服務程序的監(jiān)聽端口必須一致。
網站欄目:JavaSocket對象原理的詳細介紹
當前網址:http://m.fisionsoft.com.cn/article/codppcg.html


咨詢
建站咨詢
