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

首頁 > 系統 > Android > 正文

Android編程之客戶端通過socket與服務器通信的方法

2020-04-11 11:15:28
字體:
來源:轉載
供稿:網友

本文實例講述了Android編程之客戶端通過socket與服務器通信的方法。分享給大家供大家參考,具體如下:

下面是一個demo,Android客戶端通過socket與服務器通信。

由于Android里面可以完全使用java.io.*包和java.net.*包,那么,實際上,邏輯部分與J2SE沒有區別。只是UI代碼不一樣。

Android客戶端通過socket與服務器通信分為下面5步:

(1)通過IP地址和端口實例化Socket,請求連接服務器;

復制代碼 代碼如下:
socket = new Socket("10.14.114.127",54321); //IP:10.14.114.127,端口54321

(2)獲取Socket流以進行讀寫,并把流包裝進BufferWriter或者PrintWriter
復制代碼 代碼如下:
PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);

這里涉及了三個類:socket.getOutputStream得到socket的輸出字節流,OutputStreamWriter是字節流向字符流轉換的橋梁,BufferWriter是字符流,然后再包裝進PrintWriter。

(3)對Socket進行讀寫

復制代碼 代碼如下:
out.println(message);

(4)關閉打開的流
復制代碼 代碼如下:
out.close();

完整工程代碼如下:

package com.yarin.android.Examples_08_04; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.Socket; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class Activity01 extends Activity {   private final String    DEBUG_TAG  = "Activity01";   private TextView  mTextView = null;   private EditText  mEditText = null;   private Button   mButton = null;   /** Called when the activity is first created. */   @Override   public void onCreate(Bundle savedInstanceState)   {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     mButton = (Button)findViewById(R.id.Button01);     mTextView = (TextView)findViewById(R.id.TextView01);     mEditText = (EditText)findViewById(R.id.EditText01);     //登陸     mButton.setOnClickListener(new OnClickListener()     {       public void onClick(View v)       {         Socket socket = null;         String message = mEditText.getText().toString() + "/r/n";          try          {             //創建Socket //         socket = new Socket("192.168.1.110",54321);            socket = new Socket("10.14.114.127",54321); //IP:10.14.114.127,端口54321           //向服務器發送消息           PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(socket.getOutputStream())),true);              out.println(message);            //接收來自服務器的消息           BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));            String msg = br.readLine();            if ( msg != null )           {             mTextView.setText(msg);           }           else           {             mTextView.setText("數據錯誤!");           }           //關閉流           out.close();           br.close();           //關閉Socket           socket.close();          }         catch (Exception e)          {           // TODO: handle exception           Log.e(DEBUG_TAG, e.toString());         }       }     });   } }

布局文件main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:orientation="vertical"   android:layout_width="fill_parent"   android:layout_height="fill_parent"   >   <TextView    android:id="@+id/TextView01"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="這里顯示接收到服務器發來的信息"   />   <EditText    android:id="@+id/EditText01"    android:text="輸入要發送的內容"    android:layout_width="fill_parent"    android:layout_height="wrap_content">   </EditText>   <Button    android:id="@+id/Button01"   android:layout_width="fill_parent"   android:layout_height="wrap_content"   android:text="發送"   />  </LinearLayout>

AndroidManifest.xml文件如下

<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.yarin.android.Examples_08_04"    android:versionCode="1"    android:versionName="1.0">   <application android:icon="@drawable/icon" android:label="@string/app_name">    <activity android:name=".Activity01"          android:label="@string/app_name">       <intent-filter>         <action android:name="android.intent.action.MAIN" />         <category android:name="android.intent.category.LAUNCHER" />       </intent-filter>     </activity>   </application>   <uses-permission android:name="android.permission.INTERNET"></uses-permission>   <uses-sdk android:minSdkVersion="5" /> </manifest>

當然,還有服務器端得代碼

package com.yarin.android.Examples_08_04; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; public class Server implements Runnable {   public void run()   {     try     {       //創建ServerSocket       ServerSocket serverSocket = new ServerSocket(54321);       while (true)       {         //接受客戶端請求         Socket client = serverSocket.accept();         System.out.println("accept");         try         {           //接收客戶端消息           BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));           String str = in.readLine();           System.out.println("read:" + str);            //向服務器發送消息           PrintWriter out = new PrintWriter( new BufferedWriter( new OutputStreamWriter(client.getOutputStream())),true);              out.println("server message");            //關閉流           out.close();           in.close();         }         catch (Exception e)         {           System.out.println(e.getMessage());           e.printStackTrace();         }         finally         {           //關閉           client.close();           System.out.println("close");         }       }     }     catch (Exception e)     {       System.out.println(e.getMessage());     }   }   //main函數,開啟服務器   public static void main(String a[])   {     Thread desktopServerThread = new Thread(new Server());     desktopServerThread.start();   } }

先開啟服務器代碼

java  Server即可

然后啟動android模擬器。運行結果

這是Android客戶端。輸入12345,點擊發送:

這是服務器端收到的消息

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧洲s码亚洲m码精品一区| 国产精品成人久久久久| 日韩在线视频网站| 亚洲第一精品夜夜躁人人爽| 懂色av中文一区二区三区天美| 91视频国产一区| 欧美激情视频网站| 久久精品中文字幕免费mv| 日韩高清av在线| 一本大道香蕉久在线播放29| 亚洲精品免费av| 亚洲精品国产suv| 亚洲欧美在线一区二区| 国产精品久久久久久久午夜| 日韩久久精品电影| 久久精品国产久精国产思思| 亚洲精选在线观看| 91av视频在线播放| 久久久国产影院| 91亚洲午夜在线| 国产精品网站视频| 亚洲日本中文字幕| 精品久久久视频| 久久精品国产亚洲精品| 国产精品成av人在线视午夜片| 精品中文字幕在线观看| 亚洲免费电影一区| 欧美中文字幕在线| 中文字幕免费国产精品| 亚洲第一天堂无码专区| 日韩在线免费av| 不卡av电影在线观看| 国产精品爽爽爽| 日韩视频欧美视频| 97av在线视频| 国产区精品视频| 亚洲视频在线免费看| 亚洲成人网在线| 91精品久久久久久久久久久久久久| 国产精品999| 欧美剧在线观看| 91精品国产91久久久| 欧美精品成人91久久久久久久| 97热精品视频官网| 欧美刺激性大交免费视频| 久久久久五月天| 久久人91精品久久久久久不卡| 久久久久久久久久久久av| 国产日本欧美一区| 色在人av网站天堂精品| 成人国产精品免费视频| 国产视频精品一区二区三区| 精品成人av一区| 狠狠色狠色综合曰曰| 欧美久久精品一级黑人c片| 久久这里只有精品99| 成人两性免费视频| 日韩av在线高清| 一区二区三区视频观看| 亚洲风情亚aⅴ在线发布| 久久久女人电视剧免费播放下载| 亚洲精品美女在线观看播放| 国产日韩欧美影视| 国产免费一区二区三区在线观看| 九九热这里只有在线精品视| 国产精品视频26uuu| 亚洲成人a**站| 日韩av在线免费播放| 91免费在线视频| 在线视频中文亚洲| 国内精久久久久久久久久人| 日韩av在线精品| 中文字幕日韩欧美精品在线观看| 精品国内自产拍在线观看| 亚洲全黄一级网站| 亚洲在线观看视频网站| 久久亚洲国产成人| 97香蕉超级碰碰久久免费软件| 欧美大片免费看| 精品中文字幕在线| 国产亚洲欧洲高清一区| 亚洲精品美女在线观看播放| 亚洲精品美女免费| 日韩视频一区在线| 欧美精品在线网站| 国产成人黄色av| 富二代精品短视频| 国产精品久久久久久五月尺| 国产精品欧美激情| 亚洲free性xxxx护士hd| 亚洲欧美综合区自拍另类| 热99在线视频| 在线成人激情视频| 欧美大码xxxx| 中文字幕精品在线视频| 伊人成人开心激情综合网| 久久久久999| 国产精品自拍小视频| 精品国偷自产在线视频99| 久久这里只有精品99| 成人国产精品免费视频| 国产亚洲福利一区| 久久精品国产91精品亚洲| 亚洲欧美成人一区二区在线电影| 97在线视频免费看| 日韩亚洲在线观看| 欧美疯狂性受xxxxx另类| 国产精品网站入口| 日韩人在线观看| 亚洲第一精品自拍| 亚洲电影免费观看高清完整版在线| 97久久精品人人澡人人爽缅北| 亚洲影院污污.| 91麻豆国产语对白在线观看| 最近2019中文字幕在线高清| 色av吧综合网| 91精品视频免费观看| 欧美成人午夜剧场免费观看| 久久久久久美女| 青青青国产精品一区二区| 亚洲欧洲av一区二区| 成人久久久久爱| 亚洲资源在线看| 亚洲精品成人久久久| 一区二区三区亚洲| 日韩av中文字幕在线免费观看| 色哟哟网站入口亚洲精品| 揄拍成人国产精品视频| 久久精品小视频| 欧美成人小视频| 久久久久久久久国产| 69**夜色精品国产69乱| 亚洲人成电影网站色www| 在线观看不卡av| 91精品国产色综合久久不卡98| 色综合久久中文字幕综合网小说| 日韩免费观看高清| 不卡av电影院| 一区二区福利视频| 深夜福利亚洲导航| 国产精品极品美女粉嫩高清在线| 疯狂做受xxxx欧美肥白少妇| 欧美一级成年大片在线观看| 麻豆国产va免费精品高清在线| 一本色道久久88综合亚洲精品ⅰ| 最近2019中文字幕大全第二页| 麻豆一区二区在线观看| 国产a∨精品一区二区三区不卡| 日本精品视频在线| 97在线视频免费观看| 成人激情在线观看| 国产精品日韩av| 亚洲人成电影网站| 综合国产在线观看| 成人羞羞国产免费| 欧美大片第1页| 日本中文字幕不卡免费| 亚洲激情视频在线观看| 亚洲国产精品高清久久久| 欧美亚洲国产成人精品| xvideos国产精品| 国产91精品久| 色悠久久久久综合先锋影音下载| 国产精品女主播视频|