国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Android基于TCP和URL協議的網絡編程示例【附demo源碼下載】

2020-02-22 22:57:32
字體:
來源:轉載
供稿:網友

本文實例講述了Android基于TCP和URL協議的網絡編程。分享給大家供大家參考,具體如下:

手機本身是作為手機終端使用的,因此它的計算能力,存儲能力都是有限的。它的主要優勢是攜帶方便,可以隨時打開,而且手機通常總是處于聯網狀態。因此網絡支持對于手機應用非常重要。

Android完全支持JDK本身的TCP,UDP網絡通信API,也可以使用ServerSocket,Socket來建立基于TCP/IP協議的網絡通信,也可以使用DatagramSocket,Datagrampacket來建立基于UDP協議的網絡通信。Android也支持JDK提供的URL,URLConnection等網絡通信API。Android還內置了HttpClient,和HttpUrlConnection這樣可以非常方便地發送HTTP請求,并獲取Http響應。

——基于TCP協議的編程

使用Socket,ServerSocket編程:

使用多線程,handler機制完成網絡編程.

注意:由于手機無線上網的IP地址通常都是由移動運營公司動態分配的,一般不會有自己固定的IP地址,因此很少在手機上運行服務器端,服務器端通常運行在有固定IP的服務器上。

——訪問網絡資源必須放在子線程中
——需要添加訪問網絡的權限
——IP地址,不能寫成127.0.0.1.
——使用Handler機制解析返回的數據
——注意解決亂碼問題

——使用URL進行網絡編程

——使用URL訪問網絡資源

URL對象代表統一資源定位符。它是指向互聯網中的資源。該資源可以使簡單的文件或目錄。也可以是對更復雜的對象的引用。

URL的格式:protocol://host:port/resourceName

可以使用構造器創建URL對象,一旦獲得URL對象,可以調用如下的方法訪問該URL對應的資源:

String getFile():獲取URL的資源名
String getHost():獲取URL的主機名
String getPath():獲取URL的路徑部分
int getPort():獲取URL的端口號
String getProtocol():獲取URL的協議名稱
String getQuery():獲取URL的查詢字符串部分
InputStream url.openStream():打開URL的連接,返回一個讀取該資源的InputStream。

代碼編寫:

1.服務器的編寫:

使用Socket和ServerSocket:

public class serverTest { public static void main(String[] args) {  try {    ServerSocket serverSocket=new ServerSocket(7777);    System.out.println("服務器已經在7777端口上啟動了");    while (true) {      //有阻塞的功能,拿不到socket下面的方法也不會執行      Socket socket=serverSocket.accept();      System.out.println("有客戶端發出請求了");      new ServerThread(socket).start();    }  } catch (Exception e) {    // TODO Auto-generated catch block    e.printStackTrace();  } }}

ServerThread繼承Thread:

public class ServerThread extends Thread{  private Socket socket;  OutputStream outputStream;  public ServerThread(Socket socket) {    this.socket=socket;  }  @Override  public void run() {    // TODO Auto-generated method stub    try {      outputStream=socket.getOutputStream();      outputStream.write(("服務器端的時間"+new Date()).getBytes("UTF-8"));      outputStream.flush();      outputStream.close();    } catch (Exception e) {      // TODO Auto-generated catch block      e.printStackTrace();    }    super.run();  }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 庆元县| 孝昌县| 临安市| 平乡县| 宁晋县| 西安市| 兴仁县| 彩票| 峡江县| 台中市| 嵊泗县| 绩溪县| 义马市| 泰顺县| 宝应县| 广丰县| 巴林左旗| 游戏| 安阳县| 潮州市| 永仁县| 喜德县| 华安县| 马关县| 游戏| 女性| 枣强县| 德保县| 怀集县| 乡城县| 富源县| 长春市| 友谊县| 离岛区| 澄城县| 高安市| 古浪县| 山东省| 盐池县| 勃利县| 全南县|