Android編程實(shí)現(xiàn)TCP、UDP客戶(hù)端通信功能示例
本文實(shí)例講述了Android編程實(shí)現(xiàn)TCP、UDP客戶(hù)端通信功能。分享給大家供大家參考,具體如下:
在進(jìn)行Android開(kāi)發(fā)的過(guò)程中,免不了,要開(kāi)發(fā)TCP/UDP通訊的程序,下面這兩段代碼,分別介紹了TCP/UCP通過(guò)的一個(gè)實(shí)例:
代碼一 TCP通訊:
private void tcpdata() {
try {
Socket s = new Socket("192.168.0.25", 65500);
// outgoing stream redirect to socket
OutputStream out = s.getOutputStream();
// 注意第二個(gè)參數(shù)據(jù)為true將會(huì)自動(dòng)flush,否則需要需要手動(dòng)操作out.flush()
PrintWriter output = new PrintWriter(out, true);
output.println("Hello IdeasAndroid! 偽IP為:"
+ SIMCardToIP("13512345006"));
InputStream inputStream = s.getInputStream();
DataInputStream input = new DataInputStream(inputStream);
byte[] b = new byte[10000];
int length = input.read(b);
inputReader = new InputStreamReader(inputStream);
String Msg = new String(b, 0, length, "gb2312");
Toast.makeText(TcpTest.this, Msg, 1000).show();
Log.d("Tcp Demo", "message From Server:" + Msg);
s.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
下面的代碼是UDP通訊的過(guò)程:
public String send(String msg) {
StringBuilder sb = new StringBuilder();
InetAddress local = null;
try {
local = InetAddress.getByName("192.168.0.25"); // 本機(jī)測(cè)試
} catch (UnknownHostException e) {
e.printStackTrace();
}
try {
dSocket = new DatagramSocket(); // 注意此處要先在配置文件里設(shè)置權(quán)限,否則會(huì)拋權(quán)限不足的異常
} catch (SocketException e) {
e.printStackTrace();
}
int msg_len = msg == null ? 0 : msg.length();
DatagramPacket dPacket = new DatagramPacket(msg.getBytes(), msg_len,
local, SERVER_PORT);
try {
dSocket.send(dPacket);
} catch (IOException e) {
e.printStackTrace();
}
try {
dSocket.receive(dPacket);
sb.append(new String(dPacket.getData()));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dSocket.close();
return sb.toString();
}
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Android通信方式總結(jié)》、《Android開(kāi)發(fā)入門(mén)與進(jìn)階教程》、《Android調(diào)試技巧與常見(jiàn)問(wèn)題解決方法匯總》、《Android多媒體操作技巧匯總(音頻,視頻,錄音等)》、《Android基本組件用法總結(jié)》、《Android視圖View技巧總結(jié)》、《Android布局layout技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
相關(guān)文章
Android AlertDialog實(shí)現(xiàn)分享對(duì)話(huà)框/退出對(duì)話(huà)框/下載對(duì)話(huà)框
這篇文章主要介紹了Android AlertDialog實(shí)現(xiàn)分享對(duì)話(huà)框/退出對(duì)話(huà)框/下載對(duì)話(huà)框的相關(guān)資料,需要的朋友可以參考下2016-04-04
android自動(dòng)化測(cè)試知識(shí)點(diǎn)總結(jié)
在本文里小編給大家分享了關(guān)于android自動(dòng)化測(cè)試入門(mén)的相關(guān)知識(shí)點(diǎn),需要的朋友們跟著參考下吧。2019-06-06
Android開(kāi)發(fā)筆記之:返回鍵的復(fù)寫(xiě)onBackPressed()介紹
本篇文章是對(duì)Android中返回鍵的復(fù)寫(xiě)onBackPressed()進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
Android基于OpenCV實(shí)現(xiàn)非真實(shí)渲染
非真實(shí)感渲染(Non Photorealistic Rendering,簡(jiǎn)稱(chēng)NPR),是指利用計(jì)算機(jī)模擬各種視覺(jué)藝術(shù)的繪制風(fēng)格,也用于發(fā)展新的繪制風(fēng)格。比如模擬中國(guó)畫(huà)、水彩、素描、油畫(huà)、版畫(huà)等藝術(shù)風(fēng)格。本文將講解Android基于OpenCV實(shí)現(xiàn)非真實(shí)渲染的方法2021-06-06
如何修改Android Studio創(chuàng)建module時(shí)默認(rèn)的compileSdkVersion
這篇文章主要給大家介紹了如何修改Android Studio創(chuàng)建module時(shí)默認(rèn)的compileSdkVersion的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-05-05
Android不使用自定義布局情況下實(shí)現(xiàn)自定義通知欄圖標(biāo)的方法
這篇文章主要介紹了Android不使用自定義布局情況下實(shí)現(xiàn)自定義通知欄圖標(biāo)的方法,實(shí)例分析了Android通知欄圖標(biāo)的創(chuàng)建技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-12-12
Kotlin協(xié)程Context應(yīng)用使用示例詳解
這篇文章主要為大家介紹了Kotlin協(xié)程Context應(yīng)用使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12

