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("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的更多相关文章
随机推荐
- file_put_contents以及file_get_contents的用法与在使用过程中遇到的问题(PHP学习)
对数据的操作最基本的是增删改查,file_put_contents以及file_get_contents是对文件里的数据进行存入与取出. 先上代码: <?php $str = 'hello wo ...
- SpringMvc入门四----rest风格Url
知识点: REST风格URL简介 SpringMvc对rest风格的支持 @PathVariable 获取 Url 变量 SpringMvc对静态资源的处理 REST风格URL简介: 我们平时看到的s ...
- juc线程池原理(五):拒绝策略示例
概要 拒绝策略介绍 线程池的拒绝策略,是指当任务添加到线程池中被拒绝,而采取的处理措施.当任务添加到线程池中之所以被拒绝,可能是由于:第一,线程池异常关闭.第二,任务数量超过线程池的最大限制. 线程池 ...
- linux c++ rabbitMq Demo
1.在vs上实现远程调试Linux c++程序:https://www.jianshu.com/p/8b51a795cb92. 2.调试需要c++11,升级redhat上的gcc版本,虚拟机gcc版本 ...
- MySQL简述
Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一. ...
- leetcode872
class Solution { public: vector<int> v1; vector<int> v2; void GetLeaf(TreeNode* tree, in ...
- 关于苹果safari浏览器登陆时Cookie无法保存的问题
前段时间,修改了登录处理后给到客户端浏览器Cookie的内容,新增了一个姓名的value,发现safari不能保存该Cookie的内容,同时Chrome.firefox.ie等浏览器都能正常的访问,直 ...
- spring注解注入属性
- CrackMe的简单破解
[CrackMe的简单破解] 对于以下这样的输入账号和密码的窗口,我们可以猜测该程序使用最简单的机制实现,即用strmp来比较用户输入的密码和原始密码匹配.所以为了破解该程序,可以通过bp strmp ...
- 刷题向》图论》BZOJ1001 平面图最大流、平面图最小割、单源最短路(easy+)
坦白的说这是一道水题,但是因为是BZOJ上的1001,所以这道题有着特殊的意义. 关于最大流转最短路的博客链接如下:关于最大流转最短路两三事 这道题的图形很规矩,所以建边和建点还是很简单的. 题目如下 ...