一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Android - Android基于TCP和URL協議的網絡編程示例【附demo源碼下載】

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

2021-01-07 00:55飄走的我 Android

這篇文章主要介紹了Android基于TCP和URL協議的網絡編程,結合實例形式分析了Android網絡編程的通信原理、實現步驟與相關操作技巧,并附帶demo源碼供讀者下載參考,需要的朋友可以參考下

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

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

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:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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();
  }
}

2.客戶端的編寫:

關鍵代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public void click(View view){
  new Thread(){
    public void run() {
      try {
        //客戶端從服務端獲取數據
        Socket client=new Socket("169.254.244.141", 7777);
        BufferedReader bufferedReader=
            new BufferedReader
            (new InputStreamReader
                (client.getInputStream()));
        String text=bufferedReader.readLine();
        //tv.setText(text);
        //線程復用
        Message msg= Message.obtain();
        msg.what=0x123;
        msg.obj=text;
        handler.sendMessage(msg);
      } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    };
  }.start();
}

從服務器端得到時間~

效果圖如下:

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

附:完整實例代碼點擊此處本站下載

希望本文所述對大家Android程序設計有所幫助。

原文鏈接:http://blog.csdn.net/qq_33642117/article/details/51872377

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 波多野结衣教师未删减版 | 青青草在视线频久久 | 日韩欧免费一区二区三区 | 国产成人性色视频 | 被调教的校花 | 久久一本综合 | 猫咪maomiav永久网址 | 日韩精品成人免费观看 | 91制片厂制作传媒免费版樱花 | 免费高清在线观看 | 欧美乱妇高清无乱码视频在线 | 超碰成人在线播放 | 国产免费一区二区 | 欧美性色黄大片四虎影视 | 国产三级精品播放 | 公妇乱淫在线播放免费观看 | 免看一级a一片成人123 | 国产日韩欧美在线一二三四 | 亚洲国产精品自在现线让你爽 | 国产精品露脸国语对白手机视频 | 2022国产麻豆剧传媒古装 | 男生操女生的漫画 | 久久水蜜桃亚洲AV无码精品偷窥 | 韩国美女主播在线 | 手机看片国产免费现在观看 | 国产悠悠视频在线播放 | 好涨好大我快受不了了视频网 | 射西西| 亚洲日本va中文字幕 | 亚洲大爷操| 9久热这里只有精品视频在线观看 | 国产精品中文 | 第一次不是你高清在线观看 | 日本人作爰啪啪全过程 | 闺蜜调教我做她的脚奴 | 国产精品久久久久久久久免费hd | 国产精品边做边接电话在线观看 | 国产精品久久毛片完整版 | 91真人毛片一级在线播放 | 青青草视频国产 | a∨79成人网 |