• 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;
            }
        };

    }

  • 相关阅读:
    Redis 之服务器集群配置
    Redis 之持久化(rdb、aof)
    Redis 之消息发布与订阅(publish、subscribe)
    Redis事物及锁的运用
    Redis 之hash集合结构及命令详解
    对Ul下的li标签执行点击事件——如何获取你所点击的标签
    .net 面试题(3)
    SQL Server 系统时间
    分布式内存对象缓存 memcached
    MVC 模板页和布局
  • 原文地址:https://www.cnblogs.com/deityde1127/p/4141016.html
Copyright © 2020-2023  润新知