2012-03-03 8 views
1

Androidクライアントは文字列をサーバに送信します。サーバーはデバイスからの接続と正しいポートで接続を確認しますが、それはそれです。サーバーコンソールに文字列が表示されます。クライアントはサーバに接続しますが、それはそれです

参考のために、私はアンドロイドアプリ内で実行せずに全く同じクライアントを作成しました。うまくいきますので、私は物のアンドロイド側で何かを見逃していると思います。誰もこの問題を解決するための提案を提供できますか?どうもありがとう。

クライアントコード:

public class ObjectTestActivity extends Activity { 

Button submit; 
TextView tv; 
private String name = "Hello Android"; 
private DataOutputStream dos; 
private DataInputStream dis; 
private final int PORT = 3000; 

Button send; 
InetAddress host; 


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

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


    try{ 

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

     dos = new DataOutputStream(socket.getOutputStream()); 
     dis = new DataInputStream(socket.getInputStream()); 

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


public void onClick(View view){ 

    try{ 
     dos.writeUTF(name); 
     dos.flush(); 
     dis.close(); 
     dos.close(); 
    }catch(IOException e){} 
} 

答えて

1

のonClickに何が取り付けられていますか?次のように変更してみてください:

public class MyActivity extends Activity { 

    Button submit; 
    TextView tv; 
    private String name = "Hello Android"; 
    private DataOutputStream dos; 
    private DataInputStream dis; 
    private final int PORT = 3000; 

    Button send; 
    InetAddress host; 

    protected void onCreate(Bundle icicle) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

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


     try{ 

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

      dos = new DataOutputStream(socket.getOutputStream()); 
      dis = new DataInputStream(socket.getInputStream()); 

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


     send.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       try{ 
       dos.writeUTF(name); 
       dos.flush(); 
       dis.close(); 
       dos.close(); 
       }catch(IOException e){} 
      } 
     }); 
    } 
} 

ボタンのクリックイベントについて。

簡単に言えば、onCreate(send.onCreate(...))内でボタンのonClickメソッドを定義します。

この例はhereから

+0

ジャック、ありがとう。私は常にonClicksを別の方法として宣言してきました。私はそれがこのような違いを生み出すのは奇妙だと思っていますが、あなたの解決策は2週間以上の私の問題を解決しました。ありがとうございました。 – Jnanathan

関連する問題