Android網路編程Socket【執行個體解析】

來源:互聯網
上載者:User

標籤:android

Socket
其實和JavaWeb 裡面的Socket一模一樣
建立客服端,伺服器端,伺服器開一個連接埠供客服端訪問


第一步建立伺服器端:(這裡把為了便於講解,把伺服器端,和客服端都放在手機上了)
建立Android工程

socketserver


package com.example.socketserver;import java.io.IOException;import java.io.InputStream;import java.net.ServerSocket;import java.net.Socket;import android.os.AsyncTask;import android.os.Bundle;import android.app.Activity;import android.view.Menu;/** * 建立伺服器端 *  * */public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);AsyncTask.execute(new Runnable() {@Overridepublic void run() {startService();//訪問網路}});}/* * 伺服器端從客服端 *  * */public void startService(){Socket socket =null;InputStream inputStream = null;try {ServerSocket serverSocket = new ServerSocket(9999);//填入連接埠號碼socket = serverSocket.accept();//接收客服端的的串連請求inputStream = socket.getInputStream();//擷取輸入資料流/* * 從輸入資料流中讀取資料 *  * */byte[] bs = new byte[1024];int i=-1;while((i = inputStream.read(bs))!=-1){System.out.println(new String(bs,0,i));}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{if(inputStream!=null){try {inputStream.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}if(socket!=null)try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}

第二步搭建Socket客服端


package com.example.socketclient;import java.io.IOException;import java.io.OutputStream;import java.net.Socket;import java.net.UnknownHostException;import android.os.AsyncTask;import android.os.Bundle;import android.app.Activity;import android.view.Menu;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);AsyncTask.execute(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubstartClient();}});}public void startClient(){OutputStream out = null;Socket socket = null;try {socket = new Socket("127.0.0.1",9999);out = socket.getOutputStream();//擷取輸出資料流out.write("abc".getBytes());//把相當於客服端資料寫到伺服器端//虛擬機器(手機)相當於一個電腦127.0.0.1是訪問手機自己,9999是伺服器開的連接埠號碼} catch (Exception e) {e.printStackTrace();} finally{if(out!=null){try {out.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}//關閉}if(socket!=null){try {socket.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}}




著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Android網路編程Socket【執行個體解析】

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.