2012-02-22 20 views
0

アプリの目的は、文字列オブジェクトを自分のマシンのサーバーに送信することです。すべてのポート転送設定は、マシン上でJavaクライアントを使用してサーバーをテストしたときに設定されます。Android&Object出力ストリーム:スタンドオフ

問題はアンドロイドクライアントからサーバーに話すことにあります。サーバーは決してヒットしないようです。

アプリの基本的な概要:1ボタンのシンプルな画面& 1 textview。ボタンはオブジェクトをサーバーに送信し、サーバーはメッセージで応答し、テキストビューを更新します。私が言ったように、サーバーは決してヒットしないようです。誰でも私がこれを解決するために何ができるか考えている?

public class ObjectTestActivity extends Activity { 

Button submit; 
private String string = "Hello Android"; 
private ObjectOutputStream oos; 
private ObjectInputStream ois; 
private final int PORT = 3000; 

TextView tv; 


@Override 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Button send = (Button) findViewById(R.id.send); 
    tv = (TextView) findViewById(R.id.tv); 

    try{ 

     InetAddress host = InetAddress.getLocalHost(); 
     Socket socket = new Socket("xx.xx.xxx.xxx", PORT); 

     oos = new ObjectOutputStream(socket.getOutputStream()); 
     ois = new ObjectInputStream(socket.getInputStream()); 

    }catch(UnknownHostException e){} 
    catch(IOException e){} 
} 


public void onClick(View view){ 

    try{ 
     oos.writeObject(string); 
     String serverMsg = (String) ois.readObject(); 
     ois.close(); 
     oos.close(); 
        tv.setText("Message from Server: " + serverMsg); 
    }catch(IOException e){} 
    catch(ClassNotFoundException e){} 
} 

}

+0

マニフェストファイルから権限を投稿できますか? – hovanessyan

答えて

0

最初の単純なJavaクライアントからあなたのAndroidクライアントコードをテストしてみてください。それが少なくともあなたがそのアンドロイドの問題を知っている場合は動作します。

次に、マニフェストファイルを確認します。あなたは "android.permission.INTERNET"が必要です。

onCreateの例外にスタックトレースを印刷していないため、例外が発生したかどうかを知る方法がありません。

さらに高いポート番号32344を使用してみてください。

+0

こんにちは、シンプルなJavaクライアントはどういう意味ですか - サーバーとの単純なpingのように? INERNETへのAndroidのアクセス許可を最初から設定しているので、問題はありません。 – Jnanathan

関連する問題