我是這種發展中的新人。簡而言之,我正在開發一個向雲發送字符串的Android應用程序(我在亞馬遜上有一臺虛擬服務器機器),一切正常,從我的手機發送字符串到服務器機器,我打印字符串我發送和它的作品!但是,當從服務器迴應我的Android應用程序(我在我的android手機上運行它)的響應時,我什麼都沒有收到(響應應該是一個字符串+另一個字符串連接),就是這樣,容易嗎?但不幸的是我無法收回它。我測試了服務器端,它工作正常(亞馬遜EC2)。我不太確定我是否可以做我正在做的事情:連接到亞馬遜EC2的Android網絡應用程序
創建傳輸代碼以通過使用套接字發送字符串將數據發送到AsyncTask類的doInBackground()方法上的CLOUD。 在同樣的方法doInBackground我做的代碼來接收回應,通過使用ServerSocket接收來自雲端的迴應。是否有可能或者我需要另一個線程或類似的東西?
這裏是我的代碼:
`import android.os.Bundle;
import android.app.Activity;
import android.widget.TextView;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.*;
import android.os.AsyncTask;
import android.view.View;
public class ReadWebpageAsyncTask extends Activity {
private TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textView = (TextView) findViewById(R.id.TextView01);
}
private class DownloadWebPageTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls)
{
String response = "";
//Transmission
try
{
Socket socket = new Socket("MyAmazonServerIp", 5678);
DataOutputStream salida = new DataOutputStream (socket.getOutputStream());
salida.writeUTF("Llego Perfectamente");
socket.close();
salida.close();
}
catch (Exception e)
{
e.printStackTrace();
}
//Final ends
// Reception
boolean ak=true;
try
{
ServerSocket ServerSock = new ServerSocket(7896);
while(ak)
{
Socket cl=ServerSock.accept();
InetAddress ipC = cl.getInetAddress();
DataInputStream en= new DataInputStream(cl.getInputStream());
response= en.readUTF();
//response= response.toString();
ak=false;
}
}
catch(Exception exp)
{
exp.printStackTrace();
}
// Reception ends
return response;
} //doInBackground ends
@Override
protected void onPostExecute(String result)
{
textView.setText(result);
}
}
public void readWebpage(View view) {
DownloadWebPageTask task = new DownloadWebPageTask();
task.execute(new String[] { "????" });
}
}`
我真的感謝所有幫助,因爲我一直在這幾天,我一直沒能解決這個問題。 謝謝,
非常感謝你Kaediil, 我真的很感謝你的幫助。抱歉,我已經離開這個城市工作了很晚,但我會再次開始工作。再次感謝您的光臨,祝您有個美好的明天! Alberto。 – KinGPinG 2012-08-20 15:44:11
Kaediil,謝謝我現在正在工作......它從我的手機發送字符串到遠程PC,以及手機從遠程PC接收字符串。現在我試圖實現文件傳輸(首先,從手機到遠程PC - 遠程PC有一個服務器應用程序,它將文本文件分類並將其發送回手機)。現在,遠程PC正在成功接收文件並對其進行分類。但是,將文件傳回電話時,手機上會出現異常情況。我正在通過同一個套接字來做這件事。以下是手機應用程序代碼的一部分: – KinGPinG 2012-09-25 15:41:56