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

现在我试图在我的新应用程序中使用相同的功能,它使用片段和需要 sdk 11。但是应用程序在运行套接字代码时崩溃。一旦我在 manifest.xml 中将 android:minSdkVersion 更改为 9,它就会再次工作。但我需要 minSDK 11 作为片段。

我应该怎么办?我只有几个月的 Android 代码,如果我问了愚蠢的问题,请原谅我。非常感谢!

编辑:这是触发 Socket 功能的 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 回答