亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 系統(tǒng) > Android > 正文

Android之網(wǎng)絡(luò)通信案例分析

2020-04-11 12:42:02
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
由于一個(gè)項(xiàng)目的需要,我研究了一下android的網(wǎng)絡(luò)通信方式,大體和java平臺(tái)的很相似!
 
android平臺(tái)也提供了很多的API供開(kāi)發(fā)者使用,請(qǐng)按示例圖:
 
首先,介紹一下通過(guò)http包工具進(jìn)行通信,分get和post兩種方式,兩者的區(qū)別是:
1,post請(qǐng)求發(fā)送數(shù)據(jù)到服務(wù)器端,而且數(shù)據(jù)放在html header中一起發(fā)送到服務(wù)器url,數(shù)據(jù)對(duì)用戶不可見(jiàn),get請(qǐng)求是把參數(shù)值加到url的隊(duì)列中,這在一定程度上,體現(xiàn)出post的安全性要比get高
2,get傳送的數(shù)據(jù)量小,一般不能大于2kb,post傳送的數(shù)據(jù)量大,一般默認(rèn)為不受限制。
訪問(wèn)網(wǎng)絡(luò)要加入權(quán)限 <uses-permission android:name="android.permission.INTERNET" />
下面是get請(qǐng)求HttpGet時(shí)的示例代碼:
復(fù)制代碼 代碼如下:

View Code
// 創(chuàng)建DefaultHttpClient對(duì)象
HttpClient httpClient = new DefaultHttpClient();
// 創(chuàng)建一個(gè)HttpGet對(duì)象
HttpGet get = new HttpGet(
"http://192.168.1.88:8888/foo/secret.jsp");
try
{
// 發(fā)送GET請(qǐng)求
HttpResponse httpResponse = httpClient.execute(get);
HttpEntity entity = httpResponse.getEntity();
if (entity != null)
{
// 讀取服務(wù)器響應(yīng)
BufferedReader br = new BufferedReader(
new InputStreamReader(entity.getContent()));
String line = null;
response.setText("");
while ((line = br.readLine()) != null)
{
// 使用response文本框顯示服務(wù)器響應(yīng)
response.append(line + "/n");
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

post請(qǐng)求HttpPost的示例代碼:
復(fù)制代碼 代碼如下:

View Code
HttpClient httpClient=new DefaultHttpClient();
HttpPost post = new HttpPost(
"http://192.168.1.88:8888/foo/login.jsp");
// 如果傳遞參數(shù)個(gè)數(shù)比較多的話可以對(duì)傳遞的參數(shù)進(jìn)行封裝
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("name", name));
params.add(new BasicNameValuePair("pass", pass));
try
{
// 設(shè)置請(qǐng)求參數(shù)
post.setEntity(new UrlEncodedFormEntity(
params, HTTP.UTF_8));
// 發(fā)送POST請(qǐng)求
HttpResponse response = httpClient
.execute(post);
// 如果服務(wù)器成功地返回響應(yīng)
if (response.getStatusLine()
.getStatusCode() == 200)
{
String msg = EntityUtils
.toString(response.getEntity());
// 提示登錄成功
Toast.makeText(HttpClientTest.this,
msg, 5000).show();
}
}
catch (Exception e)
{
e.printStackTrace();
}
}

其次,介紹一下,使用java包的工具進(jìn)行通信,也分get和post方式
默認(rèn)使用get方式,示例代碼:
復(fù)制代碼 代碼如下:

View Code
try
{
String urlName = url + "?" + params;
URL realUrl = new URL(urlName);
// 打開(kāi)和URL之間的連接或者HttpUrlConnection
URLConnection conn =realUrl.openConnection();
// 設(shè)置通用的請(qǐng)求屬性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
// 建立實(shí)際的連接
conn.connect();
// 獲取所有響應(yīng)頭字段
Map<String, List<String>> map = conn.getHeaderFields();
// 遍歷所有的響應(yīng)頭字段
for (String key : map.keySet())
{
System.out.println(key + "--->" + map.get(key));
}
// 定義BufferedReader輸入流來(lái)讀取URL的響應(yīng)
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null)
{
result += "/n" + line;
}
}
catch (Exception e)
{
System.out.println("發(fā)送GET請(qǐng)求出現(xiàn)異常!" + e);
e.printStackTrace();
}
// 使用finally塊來(lái)關(guān)閉輸入流

使用post的示例代碼:
復(fù)制代碼 代碼如下:

View Code
try
{
URL realUrl = new URL(url);
// 打開(kāi)和URL之間的連接
URLConnection conn = realUrl.openConnection();
// 設(shè)置通用的請(qǐng)求屬性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
// 發(fā)送POST請(qǐng)求必須設(shè)置如下兩行
conn.setDoOutput(true);
conn.setDoInput(true);
// 獲取URLConnection對(duì)象對(duì)應(yīng)的輸出流
out = new PrintWriter(conn.getOutputStream());
// 發(fā)送請(qǐng)求參數(shù)
out.print(params);
// flush輸出流的緩沖
out.flush();
// 定義BufferedReader輸入流來(lái)讀取URL的響應(yīng)
in = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
String line;
while ((line = in.readLine()) != null)
{
result += "/n" + line;
}
}
catch (Exception e)
{
System.out.println("發(fā)送POST請(qǐng)求出現(xiàn)異常!" + e);
e.printStackTrace();
}

從以上知,get請(qǐng)求只需要conn.connect(),post請(qǐng)求時(shí),必須設(shè)置 conn.setDoOutput(true),conn.setDoinput(true),還必須獲取URLConnection的輸出流getOutputStream()
最后,使用套接字(soket)進(jìn)行通信分為兩種形式:面向連接的(tcp)和無(wú)連接的(udp 數(shù)據(jù)報(bào))
tcp連接示例:
復(fù)制代碼 代碼如下:

View Code
//服務(wù)器端
//創(chuàng)建一個(gè)ServerSocket,用于監(jiān)聽(tīng)客戶端Socket的連接請(qǐng)求
ServerSocket ss = new ServerSocket(30000);
//采用循環(huán)不斷接受來(lái)自客戶端的請(qǐng)求
while (true)
{
//每當(dāng)接受到客戶端Socket的請(qǐng)求,服務(wù)器端也對(duì)應(yīng)產(chǎn)生一個(gè)Socket
Socket s = ss.accept();
OutputStream os = s.getOutputStream();
os.write("您好,您收到了服務(wù)器的消息!/n"
.getBytes("utf-8"));
//關(guān)閉輸出流,關(guān)閉Socket
os.close();
s.close();
}
//客戶端
Socket socket = new Socket("192.168.1.88" , 30000);
//將Socket對(duì)應(yīng)的輸入流包裝成BufferedReader
BufferedReader br = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
//進(jìn)行普通IO操作
String line = br.readLine();
show.setText("來(lái)自服務(wù)器的數(shù)據(jù):" + line);
br.close();
socket.close();

udp連接示例:
復(fù)制代碼 代碼如下:

View Code
服務(wù)器端:
try {
//創(chuàng)建一個(gè)DatagramSocket對(duì)象,并指定監(jiān)聽(tīng)的端口號(hào)
DatagramSocket socket = new DatagramSocket(4567);
byte data [] = new byte[1024];
//創(chuàng)建一個(gè)空的DatagramPacket對(duì)象
DatagramPacket packet = new DatagramPacket(data,data.length);
//使用receive方法接收客戶端所發(fā)送的數(shù)據(jù)
socket.receive(packet);
String result = new String(packet.getData(),packet.getOffset(),packet.getLength());
System.out.println("result--->" + result);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
客戶端:
try {
//首先創(chuàng)建一個(gè)DatagramSocket對(duì)象
DatagramSocket socket = new DatagramSocket(4567);
//創(chuàng)建一個(gè)InetAddree
InetAddress serverAddress = InetAddress.getByName("192.168.1.104");
String str = "hello";
byte data [] = str.getBytes();
//創(chuàng)建一個(gè)DatagramPacket對(duì)象,并指定要講這個(gè)數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)當(dāng)中的哪個(gè)地址,以及端口號(hào)
DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,4567);
//調(diào)用socket對(duì)象的send方法,發(fā)送數(shù)據(jù)
socket.send(packet);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

以上,是我的總結(jié),最近正在做一個(gè)類似網(wǎng)絡(luò)視頻客戶端的作品,如果大家有人做過(guò)這方面,歡迎您們提出建議和實(shí)現(xiàn)終端和服務(wù)器訪問(wèn)的其他方法。謝謝!
與大家共勉?。?!
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
亚洲中文字幕无码专区| 亚洲国产人成综合网站| 久草视频免费在线观看| 亚洲女成人图区| 乌克兰美女av| 黄色一级大片在线免费观看| 在线观看午夜av| 欧美男男video| 久久免费福利视频| 日韩美女在线看| 国产精品第一页在线| 宅男网站在线免费观看| 成人激情在线播放| 亚洲一区二区美女| 免费女人黄页| 91pony九色| 亚洲精品国产精品久久清纯直播| 偷拍视频一区二区| 激情小说网站亚洲综合网| 久久综合桃花网| 粉嫩精品导航导航| wwwwxxxx国产| 欧美9999| 成人激情小说网站| 波多野结衣中文字幕一区二区三区| 色吊一区二区三区| 久久久香蕉视频| 日韩av卡一卡二| 怡春院在线视频| 亚洲精品视频啊美女在线直播| 久久午夜无码鲁丝片| 婷婷婷国产在线视频| 亚洲国产精品悠悠久久琪琪| 国产天堂在线播放| 在线欧美日韩国产| 国产高清在线精品| 日韩欧洲国产| 久久成人人人人精品欧| 亚洲图区一区| 精品视频第一区| 免费观看黄色的网站| 国产激情一区二区三区四区| 国产极品美女高潮无套嗷嗷叫酒店| 五月激情六月综合| 亚洲精品国产无码| 欧美性另类69xxxx| 日韩美女av在线| 人成网站在线观看| 在线观看视频黄色| 成年免费视频黄网站在线观看| 黄页大全在线免费观看| 欧美放荡办公室videos4k| **欧美日韩vr在线| 中文字幕在线播放视频| 日本色护士高潮视频在线观看| 久久精品国产免费观看| 视频免费在线看| 91在线精品秘密一区二区| 欧美亚韩一区| 日韩久久久精品| 欧美黄色免费影院| 中文字幕日韩一区二区不卡| 国产成人99久久亚洲综合精品| 日韩欧美视频在线免费观看| 欧美日韩午夜视频| 九色综合国产一区二区三区| 欧美日韩精选| 日日躁夜夜躁aaaabbbb| 国产精品美女av| 国产成人无码av| 青春草视频在线观看| 久久精品国内一区二区三区水蜜桃| 精品欧美久久| 亚洲国产精品久久精品怡红院| 666欧美在线视频| 在线欧美视频| 日韩精品一区二区三区视频在线观看| 日本新janpanese乱熟| 国产乱码精品一区二区亚洲| 国产一区免费| 蜜臀在线观看| 91麻豆福利精品推荐| 国产欧美日韩综合一区在线播放| 欧美久色视频| 国产精品久久久久免费a∨大胸| 国产精品99久久久久久久| 日本免费不卡| 亚洲一区在线| 亚洲一区美女视频在线观看免费| 国产精品一区二区果冻传媒| 亚洲最大av在线| 一二三四区精品视频| 欧美野外多人交3| 成人网站免费观看| 日韩精品视频网址| japanesexxxxfree在线观看| 亚洲mv大片欧洲mv大片| 国产91在线播放精品| 一级网站在线观看| 亚洲欧美日韩天堂一区二区| 亚洲精品一区二区三区中文字幕| 日韩手机在线观看视频| 国产蜜臀av在线一区二区三区| 一区二区三区视频免费视频观看网站| 四虎影视成人永久免费观看视频| 悠悠资源网亚洲青| 91av在线免费观看视频| 中文字幕亚洲欧美一区二区三区| 久久久久国产精品嫩草影院| 亚洲国产一区二区三区在线播放| 欧美国产一区二区在线观看| 中文字幕欧美日韩久久| 日韩国产一区久久| 日韩欧美电影在线观看| 中文字幕亚洲一区二区三区| 亚洲欧美激情视频在线观看一区二区三区| 无码国产精品一区二区色情男同| 免费黄色a网站| av毛片久久久久**hd| 国产伦理一区二区| 在线免费高清一区二区三区| 黄色片在线观看免费| 久久人人超碰精品| 理论片影音先锋| 91精品论坛| 欧美日韩综合一区二区三区| 在线亚洲日本| 国产成a人亚洲精v品在线观看| 日本特黄在线观看| 美女又爽又黄免费动漫| 黄色91在线观看| 国产主播在线一区| 日本一区二区三区久久久久久久久不| 日韩高清dvd| jizzjizz国产精品喷水| 国产精品成人观看视频免费| 日韩在线不卡视频| 日本一级一片免费视频| 色偷偷免费视频| 亚洲老头同性xxxxx| 亚洲最大福利视频网站| 九九视频在线免费观看| 色琪琪免费视频网站| 黄色片一区二区三区| 一区二区三区四区视频在线| 一二三四在线观看免费高清中文在线观看| 黄色毛片在线观看| 欧美国产高清| 亚洲乱码av中文一区二区| 人与人69性欧美三人交| www.在线视频.com| 手机福利在线视频| 在线黄色免费观看| 日韩一级在线观看| 久久国产午夜精品理论片最新版本| 国产美女直播视频一区| 亚洲精品喷潮一区二区三区| 一区二区三区三区在线| 日本少妇激情视频| 国产精品对白交换视频| 成人婷婷网色偷偷亚洲男人的天堂| 成人avav在线| 美女看a上一区| 无码人妻一区二区三区在线视频| 国产一区二区三区香蕉| 国产精品美女久久久免费| 亚洲成av人片在线观看| 91看片官网| 亚洲天堂免费观看| 桃花网日韩影视在线观看视频| 国产特级黄色录像| 最近中文字幕一区二区| 牛牛视频精品一区二区不卡| 韩国av中国字幕| 欧美交换国产一区内射| 可以看美女隐私的网站| gogo高清免费视频| 天天色天天操天天做| 国产高清www| 天天射—综合中文网| 最新国产精品亚洲| 国产激情视频在线| 老鸭窝毛片一区二区三区| 亚洲一区二区综合| www.污污视频| 精品一区二区三区免费| 8x8ⅹ拨牐拨牐拨牐在线观看| 欧美另类变人与禽xxxxx| 久久品道一品道久久精品| 亚洲理论电影在线观看| 91麻豆精品国产91| 欧洲一区在线| 欧美三级日本三级| 国产午夜精品一区理论片| 免费av成人在线| 欧美日韩在线不卡视频| h网址在线观看| 韩国毛片一区二区三区| 一起操在线观看| 99九九久久| 日本视频www| 少妇免费毛片久久久久久久久| 亚洲一区 中文字幕| 国产精品影片在线观看| 国产精品一区二区美女视频免费看| 亚洲综合一区二区| 一二三区精品视频| 免费看国产黄色片| 欧美粗暴性video| 天海翼精品一区二区三区| 欧美xxxx在线观看| 亚洲精品乱码久久久久久蜜桃图片| 中文字幕无码精品亚洲资源网久久| 日韩免费电影一区| 3atv在线一区二区三区| 欧美四级电影网| 国产精品91免费在线| 国产福利一区二区精品秒拍| 福利网址在线观看| 2019中文字幕在线电影免费| 色偷偷亚洲女人天堂观看欧| 欧美一区,二区| 国产精品无av码在线观看| 欧美又粗又大又爽| 天美一区二区三区| 91九色偷拍| 中文字幕激情视频| 91国内视频| 日韩国产成人无码av毛片| 成人美女视频在线观看| 小说区亚洲自拍另类图片专区| 高清国产福利在线观看| 草裙成人精品一区二区三区| eeuss鲁丝片eeuss影院| 中文字幕免费视频| 国产精品秘入口18禁麻豆免会员| 性一交一乱一区二区洋洋av| 亚州av中文字幕在线免费观看| 欧美在线网址| 国产激情一区二区三区在线观看| 91精品一久久香蕉国产线看观看| 91高清免费观看| 希岛爱理一区二区三区av高清| 成人免费激情视频| 91亚洲天堂| 亚洲久久成人| 国产一级在线观看| 亚洲黄色免费观看| 牲欧美videos精品| 97色在线视频| 精品人妻互换一区二区三区| 免费a级毛片在线观看| 99久在线精品99re8热| 亚洲女同同性videoxma| 欧美黑人经典片免费观看| 色婷婷综合缴情免费观看| 国产剧情一区二区三区| 中文字幕在线永久在线视频| 久久久精品三级| 国产精品亚洲精品| 日韩三级av| 影音先锋中文字幕在线| 97碰碰碰免费公开在线视频| 久久亚洲精品国产亚洲老地址| 在线免费观看欧美| 一级特黄aaaaaa大片| 日韩高清国产精品| 欧美成人激情图片网| 一区二区三区日韩欧美| 日本综合在线| 7777精品伊久久久大香线蕉语言| 免费黄视频在线观看| 亚洲精品在线三区| 免费电影网站在线视频观看福利| www.先锋影音av| 小说区视频区图片区| 毛片av中文字幕一区二区| 国内外成人免费激情视频| 中日韩美女免费视频网址在线观看| 高清精品在线| 在线免费国产视频| 国产成人综合久久| 久久久久久9999| 欧美日韩免费精品| 91社区在线观看| 亚洲人在线视频| 久久天天躁狠狠躁夜夜爽蜜月| 国产亚洲综合性久久久影院| 亚洲精品中文字幕乱码三区| 综合亚洲深深色噜噜狠狠网站| 99热在线网站| 日本亚洲视频在线| youjizz.com国产| 蜜桃av噜噜一区二区三区麻豆| 激情图片在线观看高清国产| 国产精品国产馆在线真实露脸| 舔足天天操天天射| 午夜精品剧场| 日产精品久久久| 日韩欧美一区二区三区免费观看| 91精品国产福利在线观看| 亚洲资源中文字幕| 黄页网站大全在线观看| 久久综合色婷婷| 欧美视频日韩视频| 在线一区二区三区四区| 91精品国自产在线| 美女把腿扒开让男人桶免费| 97视频精品| 一个人看的日本www的免费视频| 天天干 夜夜操| 俄罗斯精品一区二区| 国产欧美韩国高清| 玖玖爱免费视频| 国产成人一区二区三区电影| av不卡免费看| 伊人影院在线播放| 日韩一区二区精品| 每日更新成人在线视频| 欧美日免费三级在线| 日本欧美韩国| 欧美韩日精品| 97超碰在线资源站| 在线日本制服中文欧美| 久久黄色小视频| 久久精品免视着国产成人| 成年人视频网站免费| 亚洲色图38p|