草草影院ccyy国产日本欧美-草草影院第一页yycccom-草草影院国产第一页-草的爽免费视频-国语自产精品视频在线区-国语自产拍在线观看任你躁

將想法與焦點(diǎn)和您一起共享

Java網(wǎng)絡(luò)編程基礎(chǔ)(三) Datagram類使用方法發(fā)布者:本站     時(shí)間:2020-05-06 16:05:13

Datagram(數(shù)據(jù)包)是一種盡力而為的傳送數(shù)據(jù)的方式,它只是把數(shù)據(jù)的目的地記錄在數(shù)據(jù)包中,然后就直接放在網(wǎng)絡(luò)上,系統(tǒng)不保證數(shù)據(jù)是否能安全送到,或者什么時(shí)候可以送到,也就是說(shuō)它并不保證傳送質(zhì)量。

1 UDP套接字

數(shù)據(jù)報(bào)(Datagram)是網(wǎng)絡(luò)層數(shù)據(jù)單元在介質(zhì)上傳輸信息的一種邏輯分組格式,它是一種在網(wǎng)絡(luò)中傳播的、獨(dú)立的、自身包含地址信息的消息,它能否到達(dá)目的地、到達(dá)的時(shí)間、到達(dá)時(shí)內(nèi)容是否會(huì)變化不能準(zhǔn)確地知道。它的通信雙方是不需要建立連接的,對(duì)于一些不需要很高質(zhì)量的應(yīng)用程序來(lái)說(shuō),數(shù)據(jù)報(bào)通信是一個(gè)非常好的選擇。還有就是對(duì)實(shí)時(shí)性要求很高的情況,比如在實(shí)時(shí)音頻和視頻應(yīng)用中,數(shù)據(jù)包的丟失和位置錯(cuò)亂是靜態(tài)的,是可以被人們所忍受的,但是如果在數(shù)據(jù)包位置錯(cuò)亂或丟失時(shí)要求數(shù)據(jù)包重傳,就是用戶所不能忍受的,這時(shí)就可以利用UDP協(xié)議傳輸數(shù)據(jù)包。在Java的java.net包中有兩個(gè)類DatagramSocket和DatagramPacket,為應(yīng)用程序中采用數(shù)據(jù)報(bào)通信方式進(jìn)行網(wǎng)絡(luò)通信。

使用數(shù)據(jù)包方式首先將數(shù)據(jù)打包,Java.net包中的DategramPacket類用來(lái)創(chuàng)建數(shù)據(jù)包。數(shù)據(jù)包有兩種,一種用來(lái)傳遞數(shù)據(jù)包,該數(shù)據(jù)包有要傳遞到的目的地址;另一種數(shù)據(jù)包用來(lái)接收傳遞過(guò)來(lái)的數(shù)據(jù)包中的數(shù)據(jù)。要?jiǎng)?chuàng)建接收的數(shù)據(jù)包,通過(guò)DatagramPackett類的方法構(gòu)造:

public DatagramPacket(byte ibuft[],int ilength)

public DatagramPacket( byte ibuft[],int offset ,int ilength)

ibuf[]為接受數(shù)據(jù)包的存儲(chǔ)數(shù)據(jù)的緩沖區(qū)的長(zhǎng)度,ilength為從傳遞過(guò)來(lái)的數(shù)據(jù)包中讀取的字節(jié)數(shù)。當(dāng)采用第一種構(gòu)造方法時(shí),接收到的數(shù)據(jù)從ibuft[0]開(kāi)始存放,直到整個(gè)數(shù)據(jù)包接收完畢或者將ilength的字節(jié)寫(xiě)入ibuft為止。采用第二種構(gòu)造方法時(shí),接收到的數(shù)據(jù)從ibuft[offset]開(kāi)始存放。如果數(shù)據(jù)包長(zhǎng)度超出了ilength,則觸發(fā)IllegalArgument-Exception。不過(guò)這是RuntimeException,不需要用戶代碼捕獲。示范代碼如下:

byte[ ] buffer=new byte[8912];

DatagramPacket datap=new DatagramPacket(buffer ,buffer.length( ));

創(chuàng)建發(fā)送數(shù)據(jù)包的構(gòu)造方法為:

public DatagramPacket(byt ibuf[],int ilength,InetAddrss iaddr,int port)

public DatagramPacket(byt ibuf[],int offset , int ilength,InetAddrss iaddr,int port)

iaddr為數(shù)據(jù)包要傳遞到的目標(biāo)地址,port為目標(biāo)地址的程序接受數(shù)據(jù)包的端口號(hào)(即目標(biāo)地址的計(jì)算機(jī)上運(yùn)行的客戶程序是在哪一個(gè)端口接收服務(wù)器發(fā)送過(guò)來(lái)的數(shù)據(jù)包)。ibuf[]為要發(fā)送數(shù)據(jù)的存儲(chǔ)區(qū),以ibuf數(shù)組的offset位置開(kāi)始填充數(shù)據(jù)包ilength字節(jié),如果沒(méi)有offset,則從ibuf數(shù)組的0位置開(kāi)始填充。以下示范代碼是要發(fā)送一串字符串:


String s = new String("java networking");
byte[ ] data=s.getbytes();
int port=1024;
try{
InetAddress ineta= InetAddress.getByName(" 169.254.0.14");
DatagramPacket datap=new DatagramPacket
(data ,data.length( ),ineta,port);
}
catch(IOException e) {
}
 

數(shù)據(jù)包也是對(duì)象,也有操作方法用來(lái)獲取數(shù)據(jù)包的信息,這是很有用的。其方法如下:

public InetAddress getAddress() 如果是發(fā)送數(shù)據(jù)包,則獲得數(shù)據(jù)包要發(fā)送的目標(biāo)地址,但是如果是接收數(shù)據(jù)包則返回發(fā)送此數(shù)據(jù)包的源地址。

 

public byte[]getData()

返回一個(gè)字節(jié)數(shù)組,其中是數(shù)據(jù)包的數(shù)據(jù)。如果想把字節(jié)數(shù)組轉(zhuǎn)換成別的類型就要進(jìn)行轉(zhuǎn)化。如果想轉(zhuǎn)化成String類型,可以進(jìn)行以下的處理,設(shè)DatagramPacket datap為:

String s = new String(datap.getbytes());

public int getLength() 獲得數(shù)據(jù)包中數(shù)據(jù)的字節(jié)數(shù)。

pubic int getPort( ) 返回?cái)?shù)據(jù)包中的目標(biāo)地址的主機(jī)端口號(hào)。

發(fā)送和接收數(shù)據(jù)包還需要發(fā)送和接收數(shù)據(jù)包的套接字,即DatagramSocket對(duì)象,DatagramSocket套接字在本地機(jī)器端口監(jiān)聽(tīng)是否有數(shù)據(jù)到達(dá)或者將數(shù)據(jù)包發(fā)送出去。其構(gòu)造方法如下。

public DatagramSocket() 用本地機(jī)上任何一個(gè)可用的端口創(chuàng)建一個(gè)套接字,這個(gè)端口號(hào)是由系統(tǒng)隨機(jī)產(chǎn)生的。使用方法如下:


try{
DatagramSocket datas=new DatagramSocket( );
//發(fā)送數(shù)據(jù)包
}
catch(SocketException e){
}
 

這種構(gòu)造方法沒(méi)有指定端口號(hào),可以用在客戶端。如果構(gòu)造不成功則觸發(fā)SocketException異常。

public DatagramSocket(int port)

用一個(gè)指定的端口號(hào)port創(chuàng)建一個(gè)套接字。

當(dāng)不能創(chuàng)建套接字時(shí)就拋出SocketException異常,其原因是指定的端口已被占用或者是試圖連接低于1024的端口,但是又沒(méi)有具備權(quán)限。

2 實(shí)例:利用DatagramSocket查詢端口占用情況

我們可以利用這個(gè)異常探查本地機(jī)的端口號(hào)有沒(méi)有服務(wù)。見(jiàn)示例12-9。

【程序源代碼】


1 // ==================== Program Description =====================
2 // 程序名稱:示例12-9: UDPScan.java
3 // 程序目的:熟悉DatagramSocket的基本用法,查詢端口的占用情況
4 //=========================================================
5 import java.net.*;
6
7 public class UDPScan
8 {
9 public static void main(String args[])
10 {
11 for (int port=1024;port<=65535;port++) {
12 try {
13 DatagramSocket server=new DatagramSocket(port);
14 server.close();
15 }
16 catch(SocketException e) {
17 System.out.println("there is a server in port "+port+".");
18 }
19 }
20 }
21 }
 

【程序輸出結(jié)果】

there is a server in port 1026.

there is a server in port 1028.

there is a server in port 1046.

there is a server in port 1900.

【程序注解】

在第11~19行我們用for循環(huán)以端口號(hào)為參數(shù)實(shí)例化DatagramSocket,其中端口號(hào)從1024到65535。如果在實(shí)例過(guò)程中出錯(cuò),會(huì)拋出SocketException異常。我們根據(jù)這個(gè)異常就可以判斷出哪些端口被占用,哪些還是空閑的。值得一提的是,我們?cè)趯?shí)例化了DatagramSocket后,調(diào)用了close()關(guān)閉它。作為一種好的作風(fēng),應(yīng)該遵循。端口號(hào)在1024以下的系統(tǒng)可能會(huì)用到,比如HTTP默認(rèn)為80端口,F(xiàn)TP默認(rèn)為21端口,等等,所以我們從1024端口開(kāi)始探查。



選擇我們,優(yōu)質(zhì)服務(wù),不容錯(cuò)過(guò)
1. 優(yōu)秀的網(wǎng)絡(luò)資源,強(qiáng)大的網(wǎng)站優(yōu)化技術(shù),穩(wěn)定的網(wǎng)站和速度保證
2. 15年上海網(wǎng)站建設(shè)經(jīng)驗(yàn),優(yōu)秀的技術(shù)和設(shè)計(jì)水平,更放心
3. 全程省心服務(wù),不必?fù)?dān)心自己不懂網(wǎng)絡(luò),更省心。
------------------------------------------------------------
24小時(shí)聯(lián)系電話:021-58370032
国产精品久久久久久精品三级 | 同桌上课脱裙子让我帮他自慰 | 亚洲精品无码不卡AV| 姬小满开叉裙穿搭注意事项| 野花韩国高清免费视频6| 久久精品午夜亚洲AV无码少妇| 亚洲中文字幕无码AV在线| 久久婷婷国产剧情内射白浆 | 亚洲AⅤ永久无码毛片牛牛影视| 加勒比色综合久久久久久久久| 亚洲色无码国产精品网站可下载| 免费人成视频网站在线18| 边吃奶边扎下面动态| 熟妇高潮一区二区精品午夜无码| 国产亚洲精品精华液| 亚洲中字幕日产2021草莓| 女人高潮抽搐30分钟| 敌伦交换第21部分正文内容| 亚洲AV成人网人人蜜臀| 久久久久久A亚洲欧洲AV冫| 91精品人妻一区二区三在线| 色婷婷综合和线在线| 国内精品久久久久久久COENT | 囯精产品一品二品国精| 亚洲AV毛片成人精品| 老熟女重囗味HDXX70星空| 超碰人人澡人人胔| 亚洲AV蜜桃永久无码精品| 久久午夜无码免费| 超级黄18禁色惰网站| 亚洲AV成人无码精品网站按| 美女扒开腿让男人桶爽| 刺激战场老阿姨是谁啊| 亚洲AV无码精品色午夜| 赤裸羔羊Ⅲ致命快感 电影| 亚洲 精品 制服 校园 无码 | 色综合视频一区二区三区44| 国产成人午夜福利院| 新版孕妇BBWBBW| 精品深夜av无码一区二区老年| 荫蒂每天被三个男人添视频| 女人私密紧致手术视频| 成人午夜精品无码区久久| 婷婷丁香五月深爱憿情网| 国语做受对白XXXXX在线| 亚洲色精品VR一区二区三区| 蜜桃av一区二区三区| XXX少妇厨房XXX乱| 丝袜人妻无码中文字幕综合网| 国产尤物亚洲精品不卡| 亚洲色18禁成人网站WWW| 男女啪啪激烈高潮喷出GIF免费| FUCK东北老熟女人HD叫床| 色综合久久久久综合一本到桃花网 | 久久亚洲精品成人AV无码网站 | 无码AV蜜臀AⅤ色欲在线观看| 好爽毛片一区二区三区四| 永久黄网站色视频免费直播| 欧洲肉欲K8播放毛片护士报告| 妇女AV中文精品字幕XXX| 亚洲AV无码片一区二区三区| 里番ACG ※里番_ACG工口| 暗交小拗女一区二区三区电影| 四虎无码永久在线影库网址一个人| 国内精品久久久久影院中文字幕| 伊人狠狠色丁香婷婷综合| 人妻 中文 无码 JAVHD| 亚洲色大成网站久久久| 欧美人妻一区二区| 国语自产偷拍精品视频偷| WWW内射国产在线观看| 亚洲国产成人精品青青草原 | 日韩AⅤ人妻无码一区二区| 精品日本一区二区三区免费 | 岳两片蚌肉缓缓张开| 挺进绝色老师的紧窄小肉| 免费人成在线观看网站| 国产美女视频免费观看| AⅤ精品一区二区三区| 亚洲AV无码兔费综合| 人体欣赏SHOWYBEAUTY| 久久精品久久久久久噜噜| 亚洲国产成人久久一区WWW| 久久精品无码中文字幕| 成 人 综合 亚洲另类| 亚洲AV无码乱码一级毛片孕妇| 男人放进女人里面叫什么| 国产XXXX99真实实拍| 亚洲无人区码卡二卡三卡四卡| 人妻少妇看A偷人无码精品| 国产真实乱XXXⅩ视频| 最新精品国偷自产在线婷婷| 挺进绝色老师的紧窄小肉六视频| 久久久久久久久久精品电影| 成人无码区免费AⅤ片WWW软件| 亚洲国产成人一区二区三区| 强行挺进美艳老师的后臀| 又粗又大又黄又爽的免费视频 | 男人吵架后疯狂要你什么心理| 国产午夜亚洲精品国产成人| 精品无人区卡一卡二卡三 | 伊人久久亚洲综合AV影院| 蜜芽亚洲AV无码精品国产| 麻豆果冻传媒精品国产AV| 久久久噜噜噜久噜久久| 极品丰满熟妇人妻无码| 国产欧美VA天堂在线观看视频下| 成年奭片免费观看视频天天看| …久久精品99久久香蕉国产| 亚洲中文字幕永久在线不卡| 亚洲国产另类久久久精品| 性欧美大战久久久久久久久| 脱岳裙子从后面挺进去| 四川老妇山边性对白| 亚洲成AV人片在线观看无码| 99国精产品灬源码1688钻石| 八戒八戒WWW资源高清| 波多野结衣AV中文一区二区三区| JAPANESE厨房乱TUB偷| 13小男生GAY自慰脱裤子| 18一20亚洲GAY无套| 99国产精品自在自在久久| 99久久婷婷国产一区二区| 别揉我奶头~嗯~啊~动态图视频| 午夜福利理论片高清在线观看| 人妻无码久久久久久久久久久| 麻豆精品一区综合AV在线| 精品国产AV色欲果冻传媒| 国产精品久久久久一区二区三区| 性色AV性色生活片| 色综合色欲色综合色综合色综合| 欧美午夜理伦三级在线观看| 邻居少妇张开腿让我爽了在线观看 | 人善交XUANWEN200| 精品无人区一区二区三区在线 | 金瓶梅之爱的奴隶| CHINESE老太性视频BBW| 中国A级毛片免费| 亚洲日韩一区二区三区黑人 | 人成午夜免费大片| 免费无码国产V片在线观看| 精品一区二区三区免费乱码视频| 国产一精品一AV一免费 | 60老妇VIDEOXXX| 在线成人A毛片免费播放| 久久亚洲精品中文字幕波多野结衣| 国产精品毛片久久久久久久| JAPANESE酒醉侵犯| 一本久道综合在线中文无码| 亚洲AV成人精品日韩一区麻豆| 日韩精品无码一本二本三本| 免费无码一区二区三区蜜桃| YEEZY380蜜桃粉和白色| 中国熟妇色XXXX欧美老妇多毛| 一本大道色婷婷在线| 亚洲色国产欧美日韩| 亚洲欧美V国产蜜芽TV| 久久AV无码AV高潮AV| 国产精品丝袜高跟鞋| 大BBW大BBW超大BBW| 97精品人妻系列无码人妻| 热久久99这里有精品综合久久 | 狠狠色伊人亚洲综合网站野外 | 日产精品一线二线三线优势| 漂亮人妻中文字幕丝袜| 欧美性大战久久久久久| 亚洲丰满少妇自摸| 亚洲精品乱码久久久久久按摩 | 永久黄网站色视频免费品善网| ZPS无套内射视频免费播放| 国产精品久久自在自线| 久久久久亚洲AV无码网站少妇| 少妇性SEXBBWZⅩX| 亚洲国产成人久久精品99| JAVAPARSERHD高潮| 久久精品无码AV| 欧美激情精品久久久久久黑人| 久久国产精品日本波多野结衣| 精品综合久久久久久97| 久久不见久久见免费影院国语| 精品人妻系列无码人妻漫画| 久久不见久久见中文字幕免费| 久久精品国产亚洲AV高清漫画| 久久精品国产一区二区三区| 久久久久国产精品熟女影院 | 日本亲近相奷中文字幕| 日本AⅤ精品一区二区三区日| 日韩AV无码社区一区二区三区| 日韩无码av一区二区| 少洁白妇无删减全文阅读| 天天做AV天天爱天天爽| 午夜射精日本三级| 亚洲成A人片在线观看无码| 亚洲日本乱码一区二区在线二产线| 亚洲欧美综合区丁香五月小说 | 国产精品久久久久精品三级APP| 国产欧美一区二区精品性色| 好吊视频一区二区三区| 精品亚洲国产成人AV不卡| 久久大香国产成人AV|