这里有新鲜出炉的精品教程,程序狗速度看过来!
Android 是一种基于 Linux 的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由 Google 公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用 "安卓" 或 "安致"。
这篇文章主要介绍了 Android 连接服务器端的 Socket 的实例代码, 需要的朋友可以参考下
废话不多说了,直接给大家贴代码了,具体代码如下所述:
package com.exa
- mple.esp8266;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.PrintStream;
- import java.net.Socket;
- import android.app.Activity;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
- public class MainActivity extends Activity {
- private EditText edSend,
- edReceive;
- private Button btnConnect,
- btnSend;
- private Handler myHandler;
- private SendThread SendThread;
- private boolean isReceive = false;
- private boolean isConnect = false;
- private static final String HOST = "192.168.4.1";
- private static final int PORT = 333;
- String strMessage;
- Socket socket = null;@Override protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- edSend = (EditText) findViewById(R.id.edSend);
- edReceive = (EditText) findViewById(R.id.edReceive);
- btnConnect = (Button) findViewById(R.id.btConnect);
- btnSend = (Button) findViewById(R.id.btSend);
- // 连接
- btnConnect.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if (!isConnect) {
- new Thread(connectThread).start();
- isConnect = true;
- }
- }
- });
- // 发送
- btnSend.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
- // 启动发送线程
- new Thread(SendThread).start();
- }
- });
- myHandler = new Handler() { // UI主线程消息处理函数
- public void handleMessage(Message msg) {
- Bundle bundle = msg.getData();
- String string = bundle.toString();
- edReceive.setText(string);
- }
- };
- }
- // 连接到服务器的接口
- Runnable connectThread = new Runnable() {
- public void run() {
- // TODO Auto-generated method stub
- try {
- socket = new Socket(HOST, PORT);
- if (socket != null) Toast.makeText(getApplicationContext(), "连接成功", Toast.LENGTH_LONG).show();
- else Toast.makeText(getApplicationContext(), "连接失败", Toast.LENGTH_LONG).show();
- // 初始化发送线程
- SendThread = new SendThread(socket);
- } catch(IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- };
- // 接收消息的接口
- Runnable Receive = new Runnable() {
- InputStream inStream;
- private byte[] buffer;
- private String str = null;
- public void run() {
- // TODO Auto-generated method stub
- while (!isReceive) {
- buffer = new byte[512];
- try {
- inStream = socket.getInputStream();
- inStream.read(buffer);
- } catch(IOException e) {
- e.printStackTrace();
- }
- str = new String(buffer);
- Bundle bundle = new Bundle();
- bundle.get(str);
- Message message = new Message();
- message.setData(bundle);
- myHandler.sendMessage(message);
- }
- }
- };
- // 发送线程
- private class SendThread extends Thread {
- private OutputStream outStream = null;
- private String str = null;
- SendThread(Socket socket) {
- try {
- outStream = socket.getOutputStream();
- } catch(IOException e) {
- e.printStackTrace();
- }
- }
- public void run() {
- // while(true){
- str = edSend.getText().toString().trim();
- PrintStream pt = new PrintStream(outStream);
- pt.print(str);
- new Thread(Receive).start();
- // }
- }
- }
- protected void onDestroy() {
- // TODO Auto-generated method stub
- super.onDestroy();
- if (Receive != null) {
- isReceive = false; ((Thread) Receive).interrupt();
- }
- }
- }
以上所述是小编给大家介绍的 Android 连接服务器端的 Socket 的实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
来源: http://www.phperz.com/article/17/0825/337602.html