1

次のように、ソケット クラスを使用して TCP/IP クライアントを作成するアプリをコーディングしました。

Socket soc;
DataOutputStream out;
DataInputStream in;

//in try-catch loop
soc = new ("192.168.1.101", 100);
out = new DataOutputStream(socket.getOutputStream());
in = new DataInputStream(socket.getInputStream());

.....//code on I/O through socket

そして、sdk 9を実行している以前のapで正常に動作します

今、フラグメントと必要なsdk 11を利用する新しいアプリで同じ機能を使用しようとしています。しかし、アプリはソケットコードを実行するたびにクラッシュします。manifest.xml で android:minSdkVersion を 9 に変更すると、再び機能します。しかし、フラグメントには minSDK 11 が必要でした。

私は何をすべきか?私は Android のコーディングを数か月しか行っていません。ばかげた質問をした場合はご容赦ください。どうもありがとうございました。

編集: これは、ソケット機能をトリガーした OnClick 関数です。

private Button.OnClickListener m_BtnConnectDisconnectOnClick = new Button.OnClickListener()
{
   public void onClick(View v)
   {
         try
         {
          //Obtaining IP Address & Port number
          String str_ip = m_EditPumpIP.getText().toString();
          int int_port = Integer.parseInt(m_EditPumpPort.getText().toString());

          //Establish Pump Connection
          socket = new Socket(str_ip, int_port);
          out = new DataOutputStream(socket.getOutputStream());
          in = new DataInputStream(socket.getInputStream());

          //Update Status
          m_TextSystemStatus.setText("OK");
         }
         catch (IOException e)
         {
           //Update Status
           m_TextSystemStatus.setText("Fail");
         }
   }
};
4

1 に答える 1

1

これを AsyncTask に入れます

//Establish Pump Connection
          socket = new Socket(str_ip, int_port);
          out = new DataOutputStream(socket.getOutputStream());
          in = new DataInputStream(socket.getInputStream());

この例のように

于 2013-03-11T11:40:35.493 に答える