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

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("com.neusoft.radioserver.RadioGpsService");
        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;
        }
    };

}

dssfsfsfs的更多相关文章

随机推荐

  1. unidac连接ORACLE免装客户端驱动

      当你选择Oracle作数据库服务器时,客户端一般需要装一个肥硕的200M左右客户端,而且还要做连接配置,尤其是C/S模式,客户端多的时候非常不便.当然,网上也有一个10M左右的Oracle精简客户 ...

  2. 方格取数(dp)

    方格取数 时间限制: 1 Sec  内存限制: 128 MB提交: 9  解决: 4[提交][状态][讨论版][命题人:quanxing] 题目描述 设有N×N的方格图,我们在其中的某些方格中填入正整 ...

  3. delphi 原生 ADODB.recordset

    ADODB.recordset ..\source\rtl\win\Winapi.ADOInt.pas..\17.0\OCX\Servers\ADODB2010.pasCLASS_Recordset: ...

  4. Android的设置界面及Preference使用

    一般来说,我们的APP都会有自己的设置页面,那么其实我们有非常简单的制作方法.老样子,先看效果图. 然后就是看源代码了. 第一步,先在res文件夹中新建一个xml文件夹,用来存放preferences ...

  5. 模拟linux的内存分配与回收

    模拟linux的内存分配与回收 要求 通过深入理解内存分配管理的三种算法,定义相应的数据结构,编写具体代码. 充分模拟三种算法的实现过程,并通过对比,分析三种算法的优劣. (1)掌握内存分配FF,BF ...

  6. java三元运算符详解

    最近在带领实习生中遇到很多新手问与三元运算符有关的java题目,多数为代码结果题,少数为应用题.鉴于很多资料上对于java三元运算的讲解过于简单,网上的资料与题目也不是很完善,对于结果答案分析不一,故 ...

  7. Python函数之返回值、作用域和局部变量

    一.函数返回值 说到返回值,相信大家肯定都认识,没错,就是return. 所谓返回值可以这样理解:函数外部的代码要想获取函数的执行结果,就可以在函数里用return语句把结果返回. 那具体怎么用呢?接 ...

  8. Project Browser & Inspector

    [Project Browser] You can drag items from the project structure list to the Favourites and also save ...

  9. sql2012新的系统函数&分析函数

    一 .系统函数 1.字符串类函数:不用判断类型和NULL的字符串连接CONCAT函数 SQL Server本来对字符串的连接很简单,直接使用“+”号,但是需要注意两个问题,一是必须类型都是字符串类型, ...

  10. docker-compose之Nginx+Tomcat代理配置

    Tomcat镜像制作与启动 Dockerfile如下 FROM docker.io/sssllc/centos7.-jdk1. #update RUN yum -y update; yum clean ...