Android 網路編程

來源:互聯網
上載者:User

1、獲得網路資訊

首先在AndroidManifest.xml中加入許可權

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

 Code代碼如下:

public class MainActivity extends Activity {TextView netWorkTextView;ConnectivityManager cManager;NetworkInfo networkInfo;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);netWorkTextView = (TextView)findViewById(R.id.networkInfo);cManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);}@Overrideprotected void onStart(){super.onStart();networkInfo = cManager.getActiveNetworkInfo();netWorkTextView.setText(networkInfo.toString());}}

 顯示入:代表的意思,採用WIFI串連,其它不解釋。

 

2 .Socket的網路通訊

1)服務端: 建立Android工程SocketServerDemo。

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);startService(new Intent(this,SocketService.class));}}

 SocketService類

public class SocketService extends Service{Thread mServiceThread;Socket client;@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate(){super.onCreate();mServiceThread = new Thread(new SocketServerThread());}public class SocketServerThread extends Thread {private static final int PORT = 8801;private SocketServerThread() {}@Overridepublic void run() {// TODO Auto-generated method stubtry {ServerSocket serverSocket = new ServerSocket(PORT);while(true){System.out.println("begin client connected");client = serverSocket.accept();System.out.println("client connected");BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream()));System.out.println("read from client:");String textLine = reader.readLine();if (textLine.equalsIgnoreCase("EXIT")) {System.out.println("EXIT invoed, closing client");break;}System.out.println(textLine);PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(client.getOutputStream())));writer.println("ECHO from server: " + textLine);writer.flush();writer.close();reader.close();}} catch (IOException e) {// TODO: handle exceptionSystem.err.println(e);}}}}

 

2)用戶端:建立Android工程SocketClientDemo

public class MainActivity extends Activity {private static final String SERVERIP = "192.168.1.100"; //自己電腦的IPprivate static final int SERVERPORT = 8801;TextView mMsgRev;EditText mMsgEdit;Button mMsgSendBtn;String mSendMsg;String mReceivedMsg;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mMsgRev = (TextView) findViewById(R.id.receive_msg);mMsgEdit = (EditText) findViewById(R.id.edit_msg);mMsgSendBtn = (Button) findViewById(R.id.send_msg);mMsgSendBtn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubSocket socket = null;mSendMsg = mMsgEdit.getText().toString();try {socket = new Socket(SERVERIP, SERVERPORT);PrintWriter writer = new PrintWriter(new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())));writer.println(mSendMsg);writer.flush();BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));mReceivedMsg = reader.readLine();if (mReceivedMsg != null) {mMsgRev.setText(mReceivedMsg);}else {mMsgRev.setText("receive data error");}writer.close();reader.close();socket.close();} catch (UnknownHostException e) {// TODO: handle exceptionLog.i("Error", e.getMessage());}catch (IOException e) {// TODO: handle exceptionLog.i("Error", e.getMessage());}}});}}

 其中用戶端跑在我的平板上,服務端跑在My Phone上。然後再服務端的文字框中輸入文本,點擊Send按鈕,最後會收到資訊。

 注意:兩個程式的連接埠號碼8801都是相同的,用戶端的IP地址是我的電腦IP地址,兩個程式都要有許可權

<uses-permission android:name="android.permission.INTERNET" ></uses-permission>

  參考:基於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.