首页 > 解决方案 > 想要在 TCP/IP 协议中使用单套接字发送多个请求?

问题描述

在这里,我创建了一个风扇活动,每次单击任何按钮时
,它都会启动 Fan-Socket 类并在每次单击按钮时创建一个新的 Socket。但是当我继续单击按钮时会出现延迟。如何使用单个 Socket 发送多个请求并在每个按钮上单击如何通过 Socket 发送 msg 字符串?
是否存在创建缓冲区并将值放入该缓冲区并在每次单击时调用每个缓冲区值的东西。如果是这样我该怎么做.. ?? 请帮助我解决这个问题,因为我是 android 编程的新手,我无法从几天内解决这个问题

粉丝活动:

       public class FAN extends AppCompatActivity {
  private   Button buttonOn;
  private   Button button1;

     @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(layout.activity_fan);
    buttonOn = (Button) findViewById(id.Buttonon);
    button1 = (Button) findViewById(R.id.button1);
    button2 = (Button) findViewById(R.id.button2);

   buttonOn.setOnClickListener(new View.OnClickListener() {
    @Override
        public void onClick(View v) {
            if (turnOn) {
                 int tmpInt = 2;
                 String FAN = String.valueOf(tmpInt); //Converting int to string.
                 FAN_SOCKET b1 = new FAN_SOCKET();  // calling class fan socket
                 b1.execute(FAN);  //calling fan-socket class and pass the the 2 value through it. 
                 turnOn = false;
              }
             else {
                    int tmpInt = 0;
                    String FAN = String.valueOf(tmpInt); //Converting int to string.
                    FAN_SOCKET b1 = new FAN_SOCKET();  // calling class fan socket
                      b1.execute(FAN);  //sending value to socket.
                      turnOn = true;
              }
           }
        });

风扇插座类:

   class FAN_SOCKET extends AsyncTask<String,Void,String>{

    Socket socket = null;
    PrintWriter pw;
    String response;

 @Override
 protected String doInBackground(String... voids) {
        String massage = null;
         try {
            massage = voids[0];
           socket = new Socket("192.168.0.79",8888 );
          pw = new PrintWriter(socket.getOutputStream());
              pw.write(massage);
           try {
              pw.flush();
             pw.close();
            socket.close();

        } catch (SocketException e) {
            e.printStackTrace();
        }

        } catch (IOException e) {
            e.printStackTrace();
        }
       return null;
    }
}

标签: javaandroidandroid-studiobufferbytearrayoutputstream

解决方案


推荐阅读