I'm testing your code to use in my own Android application and I have a problem. Always cant connect with speedtest servers, onDownloadError get the same error: CONNECTION_ERROR, socket failed: EACCES (Permission denied).
My code is very simple:
`
/**
* socket timeout used in ms.
*/
private final static int SOCKET_TIMEOUT = 5000;
/**
* speed examples server host name.
*/
private final static String SPEED_TEST_SERVER_HOST = "2.testdebit.info";
/**
* spedd examples server uri.
*/
private final static String SPEED_TEST_SERVER_URI_DL = "/fichiers/1Mo.dat";
/**
* speed examples server port.
*/
private final static int SPEED_TEST_SERVER_PORT = 80;
private SpeedTestSocket speedTestSocket = null;
private Button btnStartTest;
private TextView txtDownValue;
private TextView txtUpValue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
speedTestSocket = new SpeedTestSocket();
//set timeout for download
speedTestSocket.setSocketTimeout(SOCKET_TIMEOUT);
btnStartTest = (Button) findViewById(R.id.buttonStartTest);
txtDownValue = (TextView) findViewById(R.id.downValue);
txtUpValue = (TextView) findViewById(R.id.upValue);
btnStartTest.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
speedTestSocket.startDownload(SPEED_TEST_SERVER_HOST, SPEED_TEST_SERVER_PORT, SPEED_TEST_SERVER_URI_DL);
}
});
speedTestSocket.addSpeedTestListener(new ISpeedTestListener() {
@Override
public void onDownloadFinished(SpeedTestReport report) {
// called when download is finished
Log.i("MainActivity SpeedTest", "[DL FINISHED] rate in octet/s : " + report.getTransferRateOctet());
Log.i("MainActivity SpeedTest", "[DL FINISHED] rate in bit/s : " + report.getTransferRateBit());
txtDownValue.setText(report.getTransferRateBit() + " bps");
//speedTestSocket.startUpload("2.testdebit.info", "/", 1000000);
}
@Override
public void onDownloadError(SpeedTestError speedTestError, String errorMessage) {
// called when a download error occur
Log.i("MainActivity SpeedTest", "Error: " + speedTestError.toString() + "\n" + errorMessage.toString());
}
@Override
public void onUploadFinished(SpeedTestReport report) {
// called when an upload is finished
Log.i("MainActivity SpeedTest", "[UL FINISHED] rate in octet/s : " + report.getTransferRateOctet());
Log.i("MainActivity SpeedTest", "[UL FINISHED] rate in bit/s : " + report.getTransferRateBit());
txtUpValue.setText(report.getTransferRateBit() + " bps");
}
@Override
public void onUploadError(SpeedTestError speedTestError, String errorMessage) {
// called when an upload error occur
}
@Override
public void onDownloadProgress(float percent, SpeedTestReport report) {
// called to notify download progress
Log.i("MainActivity SpeedTest", "[DL PROGRESS] progress : " + percent + "%");
Log.i("MainActivity SpeedTest", "[DL PROGRESS] rate in octet/s : " + report.getTransferRateOctet());
Log.i("MainActivity SpeedTest", "[DL PROGRESS] rate in bit/s : " + report.getTransferRateBit());
}
@Override
public void onUploadProgress(float percent, SpeedTestReport report) {
// called to notify upload progress
Log.i("MainActivity SpeedTest", "[UL PROGRESS] progress : " + percent + "%");
Log.i("MainActivity SpeedTest", "[UL PROGRESS] rate in octet/s : " + report.getTransferRateOctet());
Log.i("MainActivity SpeedTest", "[UL PROGRESS] rate in bit/s : " + report.getTransferRateBit());
}
@Override
public void onInterruption() {
// triggered when forceStopTask is called
}
});
}
Hi,
I'm testing your code to use in my own Android application and I have a problem. Always cant connect with speedtest servers, onDownloadError get the same error: CONNECTION_ERROR, socket failed: EACCES (Permission denied).
My code is very simple:
`
`
Am I forgetting anything in my code? thanks!!