Java 网络通信必备之socket通信基本原理介绍
Java socket通信基本原理介紹
Java socket通信在不斷的進(jìn)行相關(guān)代碼的開發(fā),下面我們就看看如何才能更好的使用有關(guān)技術(shù)為我們的編程工作帶來一定的幫助。
作者:佚名來源:互聯(lián)網(wǎng)|2010-03-18 20:13
?
?
Java socket通信在Java語言中是一個(gè)使用很廣泛的工具,下面我們就來仔細(xì)的學(xué)習(xí)下有關(guān)的方法。這對(duì)大家在以后的使用中有所幫助,只有不斷的學(xué)習(xí)才能更好的使用。
所謂Java socket通信通常也稱作"套接字",用于描述IP地址和端口,是一個(gè)通信鏈的句柄。應(yīng)用程序通常通過"套接字"向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。
以J2SDK-1.3為例,Socket和ServerSocket類庫位于java.net包中。ServerSocket用于服務(wù)器端, Socket是建立網(wǎng)絡(luò)連接時(shí)使用的。在連接成功時(shí),應(yīng)用程序兩端都會(huì)產(chǎn)生一個(gè)Socket實(shí)例,操作這個(gè)實(shí)例,完成所需的會(huì)話。對(duì)于一個(gè)網(wǎng)絡(luò)連接來說, 套接字是平等的,并沒有差別,不因?yàn)樵诜?wù)器端或在客戶端而產(chǎn)生不同級(jí)別。不管是Socket還是ServerSocket它們的工作都是通過 SocketImpl類及其子類完成的。
重要的Socket API:
java.net.Socket繼承于java.lang.Object,有八個(gè)構(gòu)造器,其方法并不多,下面介紹使用最頻繁的三個(gè)方法,其它方法大家可以見JDK-1.3文檔。Accept方法用于產(chǎn)生"阻塞",直到接受到一個(gè)連接,并且返回一個(gè)客戶端的Socket對(duì)象實(shí)例。"阻塞"是一個(gè)術(shù)語,它使程序運(yùn)行暫時(shí)"停留"在這個(gè)地方,直到一個(gè)會(huì)話產(chǎn)生,然后程序繼續(xù);通常"阻塞"是由循環(huán)產(chǎn)生的。
getInputStream方法獲得網(wǎng)絡(luò)連接輸入,同時(shí)返回一個(gè)IutputStream對(duì)象實(shí)例。
getOutputStream方法連接的另一端將得到輸入,同時(shí)返回一個(gè)OutputStream對(duì)象實(shí)例。
注意:其中g(shù)etInputStream和getOutputStream方法均會(huì)產(chǎn)生一個(gè)IOException,它必須被捕獲,因?yàn)樗鼈兎祷氐牧鲗?duì)象,通常都會(huì)被另一個(gè)流對(duì)象使用。
如何開發(fā)一個(gè)Server-Client模型的程序
Java socket通信開發(fā)原理:
服務(wù)器,使用ServerSocket監(jiān)聽指定的端口,端口可以隨意指定(由于1024以下的端口通常屬于保留端口,在一些操作系統(tǒng)中不可以隨意使用,所以建議使用大于1024的端口),等待客戶連接請(qǐng)求,客戶連接后,會(huì)話產(chǎn)生;在完成會(huì)話后,關(guān)閉連接。
客戶端,使用Java socket通信對(duì)網(wǎng)絡(luò)上某一個(gè)服務(wù)器的某一個(gè)端口發(fā)出連接請(qǐng)求,一旦連接成功,打開會(huì)話;會(huì)話完成后,關(guān)閉Socket??蛻舳瞬恍枰付ù蜷_的端口,通常臨時(shí)的、動(dòng)態(tài)的分配一個(gè)1024以上的端口。
重要的Socket API:
java.net.Socket繼承于java.lang.Object,有八個(gè)構(gòu)造器,其方法并不多,下面介紹使用最頻繁的三個(gè)方法,其它方法大家可以見JDK-1.3文檔。Accept方法用于產(chǎn)生"阻塞",直到接受到一個(gè)連接,并且返回一個(gè)客戶端的Socket對(duì)象實(shí)例。"阻塞"是一個(gè)術(shù)語,它使程序運(yùn)行暫時(shí)"停留"在這個(gè)地方,直到一個(gè)會(huì)話產(chǎn)生,然后程序繼續(xù);通常"阻塞"是由循環(huán)產(chǎn)生的。
getInputStream方法獲得網(wǎng)絡(luò)連接輸入,同時(shí)返回一個(gè)IutputStream對(duì)象實(shí)例。
getOutputStream方法連接的另一端將得到輸入,同時(shí)返回一個(gè)OutputStream對(duì)象實(shí)例。
注意:其中g(shù)etInputStream和getOutputStream方法均會(huì)產(chǎn)生一個(gè)IOException,它必須被捕獲,因?yàn)樗鼈兎祷氐牧鲗?duì)象,通常都會(huì)被另一個(gè)流對(duì)象使用。
如何開發(fā)一個(gè)Server-Client模型的程序
Java socket通信開發(fā)原理:
服務(wù)器,使用ServerSocket監(jiān)聽指定的端口,端口可以隨意指定(由于1024以下的端口通常屬于保留端口,在一些操作系統(tǒng)中不可以隨意使用,所以建議使用大于1024的端口),等待客戶連接請(qǐng)求,客戶連接后,會(huì)話產(chǎn)生;在完成會(huì)話后,關(guān)閉連接。
客戶端,使用Java socket通信對(duì)網(wǎng)絡(luò)上某一個(gè)服務(wù)器的某一個(gè)端口發(fā)出連接請(qǐng)求,一旦連接成功,打開會(huì)話;會(huì)話完成后,關(guān)閉Socket。客戶端不需要指定打開的端口,通常臨時(shí)的、動(dòng)態(tài)的分配一個(gè)1024以上的端口。
下面和大家分享的是服務(wù)器的實(shí)現(xiàn)代碼。
??
?到此,java中的socket網(wǎng)絡(luò)編程就給大家介紹完啦
總結(jié)
以上是生活随笔為你收集整理的Java 网络通信必备之socket通信基本原理介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做为产品经理如何判断一个创业项目是否靠谱
- 下一篇: UDP 无连接上机案例3.4