当前位置: 首页 > news >正文

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")+"\n");

                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

相关文章:

  • Android应用程序资源的查找过程分析
  • C++中正确使用PRId64 (转载)
  • 一些变量(39~62)
  • [转]Java学习日记之 volatile
  • beta 分布的简单理解
  • 二. Weinre 调试 IOS Hybrid APP
  • careercup-C和C++ 13.10
  • 冬吴相对论锦言佳句--0005.薄伽梵歌与“印度式管理”
  • 实用脚本 4 -- Makefile(不同文件下的多个可执行文件or静态库编译到同一目录下)...
  • C# dataGridView不显示默认行的解决办法
  • 微信宣布降低企业号认证门槛 1000人以下的企业无需规模证明
  • thinkphp3.2分页
  • 临时数据更改规范
  • [xPlugin] smartupload jsp图片上传
  • 【推荐】我们这一代人的困惑
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • CSS3 变换
  • ES6简单总结(搭配简单的讲解和小案例)
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • k个最大的数及变种小结
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • MySQL几个简单SQL的优化
  • PAT A1120
  • Rancher-k8s加速安装文档
  • Shell编程
  • windows下如何用phpstorm同步测试服务器
  • 番外篇1:在Windows环境下安装JDK
  • 聚簇索引和非聚簇索引
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 排序算法之--选择排序
  • 如何在GitHub上创建个人博客
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 小而合理的前端理论:rscss和rsjs
  •  一套莫尔斯电报听写、翻译系统
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • ​香农与信息论三大定律
  • #pragam once 和 #ifndef 预编译头
  • $(function(){})与(function($){....})(jQuery)的区别
  • (10)ATF MMU转换表
  • (PWM呼吸灯)合泰开发板HT66F2390-----点灯大师
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (附源码)计算机毕业设计ssm电影分享网站
  • (力扣)1314.矩阵区域和
  • (转) 深度模型优化性能 调参
  • (转)shell中括号的特殊用法 linux if多条件判断
  • (转)大道至简,职场上做人做事做管理
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .describe() python_Python-Win32com-Excel
  • .NET delegate 委托 、 Event 事件
  • .Net 应用中使用dot trace进行性能诊断