Android--socket连接无线模块获取传感器数据------JUnit4单元测试

服务器代码单元测试:

package com.qilu.iot;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;
import org.junit.Test;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends Activity {
private EditText send_data_edittext;
private TextView data_show;
private ServerSocket serversocket;
private Handler mhander;
private Socket socket;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mhander=new Handler(){
public void handleMessage(Message msg) {
Bundle bundle=msg.getData();
String message=bundle.getString("message");
data_show.setText(message);
};
};
send_data_edittext = (EditText) findViewById(R.id.send_data_edittext);
data_show = (TextView) findViewById(R.id.data_show);
init();
}
@Test
private void init() {
// TODO Auto-generated method stub
System.out.println("客户端正在连接。。。。");
try {
serversocket = new ServerSocket(1234);
new Thread(new Runnable() {
public void run() {
while (true) {
// TODO Auto-generated method stub
try {
socket = serversocket.accept();
if(socket!=null){
System.out.println("客户端连接成功。。。");
InputStream s=socket.getInputStream();
BufferedReader buffer = new BufferedReader(
new InputStreamReader(
s,"GBK"));
System.out.println("客户端数据接收成功。。。");
String strinfo=null;
while(!((strinfo=buffer.readLine())==null)){
System.out.println("客户端数据接收成功,接收的数据为:" + strinfo);
Message message=new Message();
Bundle bundle=new Bundle();
bundle.putString("message",strinfo);
message.setData(bundle);
mhander.sendMessage(message);
}
buffer.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}).start();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}

客户端单元测试:

package com.client.androidclient;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;

import org.junit.Test;

import android.app.Activity;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private EditText data_send;
private Socket socket;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
data_send=(EditText) findViewById(R.id.data_send);
Button button = (Button) this.findViewById(R.id.send_button);
System.out.println("正在连接。。。。");
new Thread(new Runnable() {
@Override
@Test
public void run() {
// TODO Auto-generated method stub
InetAddress serverAddr;
try {
serverAddr = InetAddress.getByName("192.168.43.209");
socket = new Socket(serverAddr, 1234);
System.out.println("连接成功。。。。。。。。");
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
}).start();
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//IP地址和端口号(对应服务端),我这的IP是本地路由器的IP地址
new Thread(new Runnable() {
@Override
@Test
public void run() {
// TODO Auto-generated method stub
try {
//发送给服务端的消息
String message = "本消息来自于安卓客户端";
System.out.println("安卓客户端发送消息: ‘" + data_send.getText().toString() + "‘");
//第二个参数为True则为自动flush
PrintWriter out = new PrintWriter(
new BufferedWriter(new OutputStreamWriter(
socket.getOutputStream(),"GBK")));
out.println(data_send.getText().toString());
out.flush();
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
});
}
}

客户端socket Junit4测试时间:60%

服务器socket Junit4 测试时间:40%

 

 

时间: 2024-12-29 04:41:03

Android--socket连接无线模块获取传感器数据------JUnit4单元测试的相关文章

Android Volley 库通过网络获取 JSON 数据

本文内容 什么是 Volley 库 Volley 能做什么 Volley 架构 演示 Volley 库通过网络获取 JSON 数据 参考资料 Android 关于网络操作一般都会介绍 HttpClient 以及 HttpConnection 这两个包.前者是 Apache 开源库,后者是 Android 自带 API.企业级应用,一般都会选择使用已经封装好的 http 框架.比较流行有 Volley.android-async-http.retrofit.okhttp.androidquery.

Android Socket连接

注意点:注册访问的网络权限:android中UI线程不能有访问网络的操作,否则会报android.os.NetworkOnMainThreadException的异常 <uses-permission android:name="android.permission.INTERNET"/> 实例一 客户端 Java: package com.android.xiong.simplesocket; import java.io.BufferedReader; import j

C# 连接Excel,获取表格数据,获取多个sheet中的数据,获取多个sheet名

/// <summary> /// 获取Excel内容. /// </summary> /// <param name="sheetName">工作表名称,例:sheet1</param> /// <param name="filePath">Excel路径</param> /// <returns></returns> public static DataTable G

MVC设计模式下实现数据库的连接,并获取所有数据到浏览器页面上显示

实现建立一个学生的java类:里面封装了属性的全部属性: public class Student { private int id; private String username; private String password; public Student() { super(); } public Student(int id, String username, String password) { super(); this.id = id; this.username = user

Android利用Get、Post 获取网络数据

首先是Get: 布局很简单,就一个按钮,主要看一下MainActivity吧: package com.francis.httpget; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import java.io.

android 使用Ntrip协议,socket连接获取接入点,登录模式

前段时间出差去解决一个问题,就是获取接入点,还有登录模式.手机网络差分设置的问题,在这过程是使用Ntrip协议的.这个有点坑的地方,是在于服务器那边是不是按照协议来标准处理这些验证数据.首先是一个socket连接,socket连接上了发送协议.这个协议就是Ntrip来做的. Ntrip协议的下载地址:点击 1.使用背景 使用最多就是手机卡的接入点设置,android 系统设置,移动网络,可以新建apn设置.有些专卡,专网使用需要自已设置apn.平时我们自已使用的手机网络的接入点都是默认的.如下图

Android基础入门教程——10.10 传感器专题(1)——相关介绍

Android基础入门教程--10.10 传感器专题(1)--相关介绍 标签(空格分隔): Android基础入门教程 1.传感器相关介绍: 说到传感器,相信大家都不会陌生吧,比如微信的摇一摇就用到了加速度传感器: 传感器的定义:一种物理设备或者生物器官,能够探测.感受外界的信号,物理条件(如光,热, 适度)或化学组成(如烟雾),并将探知的信息传递给其他的设备或者器官! 传感器的种类:可以从不同的角度对传感器进行划分,转换原理(传感器工作的基本物理或化学 效应):用途:输出信号以及制作材料和工艺

android开发笔记之高级主题—传感器的简单介绍

今天我们开始进入讲解android中的一些高级主题的用法,比如传感器.GPS.NFC.语音和人脸识别等. 这次来对传感器的一个简单介绍: Android平台支持三大类的传感器: 位移传感器 这些传感器测量沿三个轴线测量加速度和旋转.这类包含加速度,重力传感器,陀螺仪,和矢量传感器. 环境传感器 这些传感器测量各种环境参数,例如周围的空气温度和压力,光线,和湿度.这类包含气压,光线,和温度传感器. 位置传感器 这些传感器测量设备的物理位置.这类包含方向和磁力传感器. 这些传感器的一些是基于硬件的,

php – 通过curl从url获取JSON数据

我试图通过curl连接从URL获取JSON数据.当我打开链接时:它显示{“version”:“N / A”,“success”:true,“status”:true}.现在,我希望获得以上内容. 到目前为止我使用了这个: $loginUrl = 'http://update.protect-website.com/index.php?plugin=firewall&action=getVersion'; $ch = curl_init(); curl_setopt($ch, CURLOPT_SS