dssfsfsfs

一直都好使啊。。好使 好使

MainActivity://overover

package com.example.sockettest;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.SocketTimeoutException;

import com.example.sockettest.DataService.CarRecordBinder;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnClickListener {

    Socket socket = null;
    String buffer = "";
    public String line ;
    TextView txt1;
    Button btn1;
    Button btn2;
    Button btn3;
    Button btn4;
    public static DataService mService;
    private String TAG = "";

    TextView textview;
    String geted1;
    BroadcastReceiver receiver = new BroadcastReceiver() {

        @Override
        public void onReceive(Context context, Intent intent) {
            line = mService.getLine();
            textview.setText(line) ;
        }
    };

    public Handler myHandler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            if (msg.what == 0x11) {

                // txt1.append("server:"+bundle.getString("msg")+" ");

                Toast.makeText(MainActivity.this, "发送成功! ", Toast.LENGTH_LONG)
                        .show();
            }
        }

    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1 = (Button) findViewById(R.id.app1);
        btn1.setOnClickListener(this);
        btn2 = (Button) findViewById(R.id.app2);
        btn2.setOnClickListener(this);
        btn3 = (Button) findViewById(R.id.app3);
        btn3.setOnClickListener(this);
        btn4 = (Button) findViewById(R.id.app4);
        btn4.setOnClickListener(this);

        textview = (TextView) findViewById(R.id.textview);

        Intent i = new Intent("");
        bindService(i, mConnection, Context.BIND_AUTO_CREATE);

        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("com.dede.dede");
        registerReceiver(receiver, intentFilter);

    }

    class MyThread extends Thread {

        public String txt1;

        public MyThread(String str) {
            txt1 = str;
        }

        @Override
        public void run() {
            // 定义消息
            Message msg = new Message();
            msg.what = 0x11;
            Bundle bundle = new Bundle();
            bundle.clear();
            try {
                // 连接服务器 并设置连接超时为5秒
                socket = new Socket();
                socket.connect(new InetSocketAddress("1.1.9.30", 30000), 5000);
                // 获取输入输出流
                OutputStream ou = socket.getOutputStream();
                BufferedReader bff = new BufferedReader(new InputStreamReader(
                        socket.getInputStream()));
                // 读取发来服务器信息
                // String line = null;
                // buffer="";
                // while ((line = bff.readLine()) != null) {
                // buffer = line + buffer;
                // }

                // 向服务器发送信息
                ou.write(txt1.getBytes());
                ou.flush();
                // 发送消息 修改UI线程中的组件
                myHandler.sendMessage(msg);
                // 关闭各种输入输出流
                bff.close();
                ou.close();
                socket.close();
            } catch (SocketTimeoutException aa) {
                // 连接超时 在UI界面显示消息
                bundle.putString("msg", "服务器连接失败!请检查网络是否打开");
                msg.setData(bundle);
                // 发送消息 修改UI线程中的组件
                myHandler.sendMessage(msg);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.app1:
            // 启动线程 向服务器发送和接收信息
            new MyThread("APP1").start();
        case R.id.app2:
            // 启动线程 向服务器发送和接收信息
            new MyThread("APP2").start();
        case R.id.app3:
            // 启动线程 向服务器发送和接收信息
            new MyThread("APP3").start();
        case R.id.app4:
            // 启动线程 向服务器发送和接收信息
            new MyThread("APP4").start();
        }

    }

    private ServiceConnection mConnection = new ServiceConnection() {
        public void onServiceConnected(ComponentName className, IBinder service) {
            mService = ((CarRecordBinder) service).getService();
 
        }

        public void onServiceDisconnected(ComponentName className) {
            Log.d(TAG, "disconnect service");
            mService = null;
        }
    };

}

原文地址:https://www.cnblogs.com/deityde1127/p/4141016.html