999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

JAVA中使用Socket通訊的實(shí)現(xiàn)

2012-06-27 03:30:52何詠明

何詠明

(長(zhǎng)江工程職業(yè)技術(shù)學(xué)院,武漢 430212)

所謂socket通常也稱作“套接字”,用于描述IP地址和端口,是一個(gè)通信鏈的句柄。應(yīng)用程序通常通過“套接字”向網(wǎng)絡(luò)發(fā)出請(qǐng)求或者應(yīng)答網(wǎng)絡(luò)請(qǐng)求。

以J2SDK-1.6為例,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類及其子類完成的。

java.net.Socket繼承于java.lang.Object,有9個(gè)構(gòu)造器,其方法并不多,下面介紹使用最頻繁的3個(gè)方法,其它方法大家可以見JDK-1.6文檔。

·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í)例。

1 如何開發(fā)一個(gè)Server-Client模型的程序

Socket通訊原理圖如圖1。

服務(wù)器:創(chuàng)建ServerSocket于指定的端口監(jiān)聽客戶端的連接請(qǐng)求,有連接為服務(wù)端創(chuàng)建一個(gè)可以通訊的socket。

客戶端:使用Socket對(duì)網(wǎng)絡(luò)上某一個(gè)服務(wù)器的某一個(gè)端口發(fā)出連接請(qǐng)求,一旦連接成功,就能進(jìn)行socket通訊。借助于上述原理開發(fā)的簡(jiǎn)易通訊程序如圖2。

2 關(guān)鍵代碼

2.1 啟動(dòng)服務(wù)

創(chuàng)建ServerSocket對(duì)應(yīng)的服務(wù)的端口號(hào),創(chuàng)建一個(gè)線程去監(jiān)聽客戶端的連接情況,如果有客戶端的連接則把一個(gè)JFrame服務(wù)端通訊的窗口包裝成一個(gè)線程去與客戶端進(jìn)行socket通訊,直到客戶端或者是服務(wù)端發(fā)出bye才結(jié)束通訊。

圖1 Socket通訊原理圖

圖2 簡(jiǎn)單通訊程序

2.2 服務(wù)端通訊

(1)服務(wù)端通訊在構(gòu)造函數(shù)中通過傳遞的socket對(duì)象來獲取相關(guān)的輸入和輸出流,同時(shí)把窗體自身顯示出來。

關(guān)鍵代碼:

(2)發(fā)送消息

服務(wù)器可以隨時(shí)向客戶機(jī)發(fā)送消息,下面的代碼是發(fā)送用的代碼,同時(shí)也監(jiān)聽客戶機(jī)的情況,當(dāng)客戶機(jī)向服務(wù)器發(fā)送bye時(shí),延遲2秒關(guān)閉自身,此時(shí)由于客戶端已經(jīng)接收到bye能夠進(jìn)行自身窗口的關(guān)閉操作而先期關(guān)閉客戶端的窗口。

關(guān)鍵代碼:

(3)接收消息

接收消息采用線程來完成,因?yàn)橄⒌牡竭_(dá)是隨機(jī)的,我們不能讓CPU來等待一個(gè)隨機(jī)的消息的到達(dá),此時(shí)改善性能的最好的辦法就是使用線程,讓CPU從繁重的等待中解脫出來而做重要的事情。下面是接收消息的代碼,當(dāng)接收到一個(gè)bye時(shí)關(guān)閉相關(guān)的通訊并退出應(yīng)用程序。

2.3 客戶機(jī)通訊

客戶機(jī)采用對(duì)話框的形式創(chuàng)建窗口,通過構(gòu)造函數(shù)來偵聽指定IP地址上的端口號(hào),同時(shí)添加窗口的關(guān)閉事件,并使自身顯示出來。

構(gòu)造函數(shù)關(guān)鍵代碼:

客戶機(jī)的其它通訊與服務(wù)器的代碼是一致的,在此不再重復(fù)。

主站蜘蛛池模板: 在线综合亚洲欧美网站| 在线一级毛片| 91青青草视频| 国产一区在线视频观看| 亚洲高清免费在线观看| 国产欧美专区在线观看| 久久久久久久蜜桃| 国产一在线| 999福利激情视频| 久久毛片免费基地| 中文字幕久久波多野结衣| 精品少妇三级亚洲| 亚洲人免费视频| 精品国产自在现线看久久| 伊人久久综在合线亚洲2019| 色综合五月婷婷| 国产无码高清视频不卡| 日日摸夜夜爽无码| 欧美日本在线播放| 久久综合成人| 亚洲福利视频一区二区| 久久黄色小视频| 国产精品第一区| 中文字幕资源站| 免费观看国产小粉嫩喷水| 老色鬼欧美精品| 色综合天天综合中文网| 日韩AV无码一区| 农村乱人伦一区二区| 无码精品国产dvd在线观看9久| 麻豆国产原创视频在线播放| 一区二区午夜| 久久久久久久97| 国产自视频| 午夜人性色福利无码视频在线观看| 亚洲人成人无码www| 国产人前露出系列视频| 91精品啪在线观看国产91| 中国国产A一级毛片| 激情综合激情| 国产人人乐人人爱| 久久一本精品久久久ー99| 手机在线国产精品| 亚洲精品日产精品乱码不卡| 亚洲日本中文字幕乱码中文| 亚洲人成网站日本片| 国产丝袜精品| 亚洲AV永久无码精品古装片| 成人国产小视频| 久久这里只有精品66| 亚洲综合网在线观看| 成人亚洲国产| 在线观看亚洲国产| 日韩大片免费观看视频播放| 国产资源免费观看| 亚洲天堂2014| 97人人做人人爽香蕉精品| 蜜桃视频一区| 伊人色在线视频| 99视频在线看| 国产成人亚洲无码淙合青草| 区国产精品搜索视频| 四虎永久免费在线| 色综合手机在线| 欧美色图第一页| 日韩精品资源| 成人在线第一页| jizz亚洲高清在线观看| 国产欧美日韩资源在线观看| 国产乱人伦AV在线A| 国产成人三级在线观看视频| 欧美福利在线观看| 欧美国产日韩在线| 日本免费高清一区| 中文无码精品A∨在线观看不卡| 日韩AV手机在线观看蜜芽| 免费观看欧美性一级| 99re热精品视频国产免费| 久久婷婷五月综合色一区二区| 亚洲人成在线免费观看| 日本在线欧美在线| 国产精品福利导航|