separate udp and tcp port

This commit is contained in:
HappyZ 2017-02-13 18:04:00 -08:00
parent 5bff1a9955
commit 20478b1cca
17 changed files with 88 additions and 74 deletions

View File

@ -37,7 +37,7 @@
<ConfirmationsSetting value="0" id="Add" />
<ConfirmationsSetting value="0" id="Remove" />
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
<component name="ProjectType">

View File

@ -66,14 +66,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
@ -82,6 +74,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/assets" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/builds" />

View File

@ -10,12 +10,9 @@ import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Environment;
import android.os.Handler;
import android.os.PowerManager;
import android.provider.Settings;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
@ -31,12 +28,8 @@ import java.util.Locale;
class MainActivity extends Activity {
// tmp fixed
protected static final String remoteIP = "128.111.68.220";
protected static final String remoteMAC = "18:03:73:c8:86:52";
protected static final String sshlinklab = "ssh linklab@hotcrp.cs.ucsb.edu"
+ " -i /data/.ssh/id_rsa -o StrictHostKeyChecking=no";
protected static final String sshlinklablocal = "ssh linklab@" + remoteIP
+ " -i /data/.ssh/id_rsa -o StrictHostKeyChecking=no";
// protected static final String remoteIP = "128.111.68.220";
// protected static final String remoteMAC = "18:03:73:c8:86:52";
protected static final String udpserver_pathport = "~/mobileRDMABeach/UDPServer 32000 ";
// unchanged stuff
protected static final String binaryFolderPath = "/data/local/tmp/";
@ -44,6 +37,13 @@ class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private static final int mVersion = Build.VERSION.SDK_INT;
// the configs
protected static String remoteIP = "192.168.10.1";
protected static String remoteMAC = "f0:de:f1:0b:45:4a";
protected static String sshlinklab = "ssh linklab@hotcrp.cs.ucsb.edu"
+ " -i /data/.ssh/id_rsa -o StrictHostKeyChecking=no";
protected static String sshlinklablocal = "ssh linklab@" + remoteIP
+ " -i /data/.ssh/id_rsa -o StrictHostKeyChecking=no";
// default variables
protected static boolean isForcingCPU0 = false;
protected static boolean isVerbose = true;
protected static boolean isLocal = false;
@ -68,7 +68,6 @@ class MainActivity extends Activity {
protected static int currentBandwidth = -1; // bps, default is -1, indicating unlimited
protected static TextView txt_results;
protected static Handler myHandler;
protected static String RXportNum = "4444";
protected static String outFolderPath;
protected static String btn_click_time;
protected static String tcpdumpInterface = "wlan0"; // default "wlan0"
@ -191,6 +190,7 @@ class MainActivity extends Activity {
return true;
}
/**
* start the record
* @param myflag:
@ -250,6 +250,14 @@ class MainActivity extends Activity {
return;
}
if (isLocal) {
Toast.makeText(
MainActivity.this,
R.string.err_unimplemented,
Toast.LENGTH_SHORT).show();
return;
}
if (isVerbose) {
Log.d(TAG, "selected variations " + selectedItemsThrpt);
}
@ -257,6 +265,7 @@ class MainActivity extends Activity {
Utilities.estimateTime(
repeatCounts, selectedItems.size(), bytes2send, selectedItemsThrpt);
// TODO: take out the thread
new Thread(new Runnable() {
@Override
public void run() {
@ -310,7 +319,8 @@ class MainActivity extends Activity {
if (isVerbose) {
Log.d(TAG, "bandwidth is set to " + currentBandwidth
+ "\nRXportNum is set to " + RXportNum);
+ "\nTCP_port is set to " + Utilities.TCP_port
+ "\nUDP_port is set to " + Utilities.UDP_port);
}
// start
@ -331,15 +341,22 @@ class MainActivity extends Activity {
int waitTimeSec = 0;
for (int i = 0; i < repeatCounts; ++i) {
for (int j = 0; j < selectedItems.size(); ++j) {
if (flagRecv && (selectedItems.get(j) == 1 || selectedItems.get(j) == 4)) {
int whichItem = selectedItems.get(j);
if (flagRecv &&
(whichItem == 1 || whichItem == 4)) {
// 1 is udp, 4 is raw normal
if (isLocal) {
waitTimeSec = (Math.max(bytes2send / currentBandwidth + 20, 20));
Runtime.getRuntime().exec("su -c /data/local/tmp/UDPServer_mobile 32000 "
+ currentBandwidth + " " + waitTimeSec + " &").waitFor();
// waitTimeSec = (Math.max(bytes2send / currentBandwidth + 20, 20));
// Runtime.getRuntime().exec("su -c /data/local/tmp/UDPServer_mobile 32000 "
// + currentBandwidth + " " + waitTimeSec + " &").waitFor();
} else {
waitTimeSec = (Math.max(bytes2send / currentBandwidth + 20, 60));
Process proc = Runtime.getRuntime().exec("su");
DataOutputStream os = new DataOutputStream(proc.getOutputStream());
waitTimeSec = Math.max(
bytes2send / currentBandwidth + 20,
60);
Process proc = Runtime.getRuntime().exec(
"su");
DataOutputStream os = new DataOutputStream(
proc.getOutputStream());
if (isUsingWifi) {
os.writeBytes(sshlinklablocal + "\n");
os.flush();
@ -349,7 +366,10 @@ class MainActivity extends Activity {
os.flush();
Thread.sleep(10001);
}
os.writeBytes(udpserver_pathport + currentBandwidth + " " + waitTimeSec + " &\n");
os.writeBytes(
udpserver_pathport +
currentBandwidth + " " +
waitTimeSec + " &\n");
os.flush();
Thread.sleep(1001);
os.writeBytes("exit\n");
@ -363,7 +383,8 @@ class MainActivity extends Activity {
}
}
Thread.sleep(1000);
btn_click_time = Long.toString(System.currentTimeMillis());
btn_click_time = Long.toString(
System.currentTimeMillis());
startService(intentSSLogger);
Thread.sleep(1000);
myServiceCheck();
@ -458,7 +479,7 @@ class MainActivity extends Activity {
Runtime.getRuntime().exec(commd).waitFor();
Log.d(TAG, "Finished " + (currentBandwidth / 1000000.0) + "Mbps, "
+ (i + 1) + "th repeat on " + Utilities.existedItems[selectedItems.get(j)]
+ ", t="+reportedFinishTime+"ms");
+ ", t="+reportedFinishTime+"s");
Thread.sleep(5000);
}
}

View File

@ -4,7 +4,6 @@ import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
@ -39,7 +38,7 @@ class Thread_RX_CNormal implements Runnable {
commd[2] = (MainActivity.isForcingCPU0?"taskset 1 ":"")
+ MainActivity.binaryFolderPath + MainActivity.binary_RX_Normal
+ " " + (MainActivity.isLocal ? Utilities.myInetIP : MainActivity.remoteIP)
+ " " + MainActivity.RXportNum;
+ " " + Utilities.TCP_port;
Log.d("RX_Normal", "Start RX Normal");
@ -84,7 +83,7 @@ class Thread_RX_CNormal implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -4,7 +4,6 @@ import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
@ -39,7 +38,7 @@ class Thread_RX_CNormalUDP implements Runnable {
commd[2] = (MainActivity.isForcingCPU0?"taskset 1 ":"")
+ MainActivity.binaryFolderPath + MainActivity.binary_RX_Normal
+ " " + (MainActivity.isLocal ? Utilities.myInetIP : MainActivity.remoteIP)
+ " " + MainActivity.RXportNum;
+ " " + Utilities.UDP_port;
Log.d("RX_NormalUDP", "Start RX NormalUDP");
@ -84,7 +83,7 @@ class Thread_RX_CNormalUDP implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -4,7 +4,6 @@ import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
@ -39,7 +38,7 @@ class Thread_RX_CRawNormal implements Runnable {
commd[2] = (MainActivity.isForcingCPU0?"taskset 1 ":"")
+ MainActivity.binaryFolderPath + MainActivity.binary_RX_RawNormal
+ " " + (MainActivity.isLocal ? Utilities.myInetIP : MainActivity.remoteIP)
+ " " + MainActivity.RXportNum;
+ " " + Utilities.UDP_port;
Log.d("RX_RawNormal", "Start RX RawNormal");
@ -84,7 +83,7 @@ class Thread_RX_CRawNormal implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -4,7 +4,6 @@ import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
@ -39,7 +38,7 @@ class Thread_RX_CSendfile implements Runnable {
commd[2] = (MainActivity.isForcingCPU0?"taskset 1 ":"")
+ MainActivity.binaryFolderPath + MainActivity.binary_RX_Sendfile
+ " " + (MainActivity.isLocal ? Utilities.myInetIP : MainActivity.remoteIP)
+ " " + MainActivity.RXportNum;
+ " " + Utilities.TCP_port;
Log.d("RX_Sendfile", "Start RX Sendfile");
@ -85,7 +84,7 @@ class Thread_RX_CSendfile implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -4,7 +4,6 @@ import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
@ -39,7 +38,7 @@ class Thread_RX_CSplice implements Runnable {
commd[2] = (MainActivity.isForcingCPU0?"taskset 1 ":"")
+ MainActivity.binaryFolderPath + MainActivity.binary_RX_Splice
+ " " + (MainActivity.isLocal ? Utilities.myInetIP : MainActivity.remoteIP)
+ " " + MainActivity.RXportNum;
+ " " + Utilities.TCP_port;
Log.d("RX_Splice", "Start RX Splice");
try {
@ -83,7 +82,7 @@ class Thread_RX_CSplice implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -4,7 +4,6 @@ import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
@ -40,7 +39,7 @@ class Thread_TX_CNormal implements Runnable {
+ MainActivity.binaryFolderPath + MainActivity.binary_TX_Normal + " "
+ MainActivity.bytes2send + " "
+ (MainActivity.isLocal ? Utilities.myInetIP : MainActivity.remoteIP) + " "
+ MainActivity.RXportNum + " "
+ Utilities.TCP_port + " "
+ ((MainActivity.currentBandwidth < 0) ? "" : String.valueOf(
MainActivity.currentBandwidth));
@ -88,7 +87,7 @@ class Thread_TX_CNormal implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -4,7 +4,6 @@ import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
@ -40,7 +39,7 @@ class Thread_TX_CNormalUDP implements Runnable {
+ MainActivity.binaryFolderPath + MainActivity.binary_TX_NormalUDP + " "
+ MainActivity.bytes2send + " "
+ (MainActivity.isLocal ? Utilities.myInetIP : MainActivity.remoteIP) + " "
+ MainActivity.RXportNum + " "
+ Utilities.UDP_port + " "
+ ((MainActivity.currentBandwidth < 0) ? "" : String.valueOf(
MainActivity.currentBandwidth));
@ -88,7 +87,7 @@ class Thread_TX_CNormalUDP implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -85,7 +85,7 @@ class Thread_TX_CRawNormal implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -4,7 +4,6 @@ import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
@ -36,7 +35,7 @@ class Thread_TX_CRawSplice implements Runnable {
+ MainActivity.binaryFolderPath + MainActivity.binary_TX_RawSplice + " "
+ MainActivity.bytes2send + " "
+ (MainActivity.isLocal ? Utilities.myInetIP : MainActivity.remoteIP) + " "
+ MainActivity.RXportNum + " "
+ Utilities.TCP_port + " "
+ ((MainActivity.currentBandwidth < 0) ? "" : String.valueOf(
MainActivity.currentBandwidth));
@ -82,7 +81,7 @@ class Thread_TX_CRawSplice implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -4,7 +4,6 @@ import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
@ -39,7 +38,7 @@ class Thread_TX_CSendfile implements Runnable {
+ MainActivity.binaryFolderPath + MainActivity.binary_TX_Sendfile + " "
+ MainActivity.bytes2send + " "
+ (MainActivity.isLocal ? Utilities.myInetIP : MainActivity.remoteIP) + " "
+ MainActivity.RXportNum + " "
+ Utilities.TCP_port + " "
+ ((MainActivity.currentBandwidth < 0) ? "" : String.valueOf(
MainActivity.currentBandwidth));
@ -86,7 +85,7 @@ class Thread_TX_CSendfile implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -4,7 +4,6 @@ import android.util.Log;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
/**
@ -40,7 +39,7 @@ class Thread_TX_CSplice implements Runnable {
+ MainActivity.binaryFolderPath + MainActivity.binary_TX_Splice + " "
+ MainActivity.bytes2send + " "
+ (MainActivity.isLocal ? Utilities.myInetIP : MainActivity.remoteIP) + " "
+ MainActivity.RXportNum + " "
+ Utilities.TCP_port + " "
+ ((MainActivity.currentBandwidth < 0) ? "" : String.valueOf(
MainActivity.currentBandwidth));
@ -86,7 +85,7 @@ class Thread_TX_CSplice implements Runnable {
MainActivity.myHandler.post(new Runnable() {
@Override
public void run() {
MainActivity.txt_results.append("Time: " + duration + "ms\n");
MainActivity.txt_results.append("Time: " + duration + "s\n");
}
});
}

View File

@ -31,7 +31,9 @@ class Utilities {
private static final String TAG = "Utilities";
// variables
static int oneMB = 1048576;
static final int oneMB = 1048576;
static int TCP_port = 4444;
static int UDP_port = 8888;
static String myInetIP = null;
static String myMAC = null;
private static boolean screenIsOff = false;

View File

@ -11,11 +11,12 @@
<string name="stat_wifion">WiFi is ON!\n</string>
<string name="stat_wifioff">WiFi is NOT On!\n</string>
<string name="txt_silentsu">Remember to silent SuperUser</string>
<string name="err_writepermission">Error: cannot write to external storage.</string>
<string name="err_mkdir_failed">Error: cannot create folder!!!</string>
<string name="txt_created_bigfile">Created a 2GB big file</string>
<string name="err_filecheck_failed">Failed to find following files:\n</string>
<string name="err_no_selection">Nothing is selected</string>
<string name="txt_go">Go!</string>
<string name="txt_continue">Continue</string>
<string name="err_writepermission">Error: cannot write to external storage.</string>
<string name="err_mkdir_failed">Error: cannot create folder!!!</string>
<string name="err_filecheck_failed">Failed to find following files:\n</string>
<string name="err_no_selection">Nothing is selected</string>
<string name="err_unimplemented">Not implemented yet</string>
</resources>

View File

@ -66,14 +66,6 @@
<sourceFolder url="file://$MODULE_DIR$/src/main/jni" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/rs" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/shaders" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/assets" type="java-test-resource" />
@ -82,6 +74,14 @@
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/androidTest/shaders" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/res" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/assets" type="java-test-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/aidl" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/jni" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/rs" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src/test/shaders" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/blame" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/recyclerview-v7/22.0.0/jars" />
<excludeFolder url="file://$MODULE_DIR$/build/intermediates/exploded-aar/com.android.support/support-v4/22.2.0/jars" />