0

私はAndroidプログラミングに非常に慣れていません。

Androidでの私のコードは次のとおりです

 public class AndroidClient extends Activity {

 EditText textOut;
 TextView textIn;
 Socket socket = null;
 DataOutputStream dataOutputStream = null;
 DataInputStream dataInputStream = null;

 /** Called when the activity is first created. */
 @Override

 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_android_client);

 textOut = (EditText)findViewById(R.id.textout);
 Button buttonSend = (Button)findViewById(R.id.send);
 textIn = (TextView)findViewById(R.id.textin);
 buttonSend.setOnClickListener(buttonSendOnClickListener);

 }

  Button.OnClickListener buttonSendOnClickListener
  = new Button.OnClickListener(){

 @Override
 public void onClick(View arg0) {
 // TODO Auto-generated method stub

 new BackgroundDataTask().execute("");
}};

    public class BackgroundDataTask extends AsyncTask<String,String,String> {

    private Exception ex;
    @Override
    protected String doInBackground(String... urls) {

         try {
          socket = new Socket("10.20.50.68", 8888);
          dataOutputStream = new DataOutputStream(socket.getOutputStream());
          dataInputStream = new DataInputStream(socket.getInputStream());
          dataOutputStream.writeUTF(textOut.getText().toString());
          textIn.setText(dataInputStream.readUTF());
          socket = serverSocket.accept();

          textIn.setText(socket.getInetAddress().toString());
         } catch (UnknownHostException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
         } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
         }

         finally{
          if (socket != null){
           try {
            socket.close();
           } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
           }
          }

          if (dataOutputStream != null){
           try {
            dataOutputStream.close();
           } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
           }
          }

          if (dataInputStream != null){
           try {
            dataInputStream.close();
           } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
           }
          }
         }

         return "";
    }

}


 }

C#コードでサーバーを持っていますコードはポートをリッスンし、出力を書き込みます

ただし、これは、テキストを入力して [送信] をクリックしたときに初めて機能します。サーバー側でコードが受信され、コンソールで出力が表示されますが、その後値が受信されません。このソケットを保持するにはどうすればよいですかランニング ?私は何が欠けていますか?

皆さん、ありがとうございました

4

1 に答える 1