Java 如何显示在AsyncTask的doInBackground中运行的BufferReader中存在的数据

Java 如何显示在AsyncTask的doInBackground中运行的BufferReader中存在的数据,java,android,sockets,Java,Android,Sockets,下面的代码显示了如何将数据发送到服务器和从服务器接收数据 public class SendMessage extends AsyncTask<String,String, String> { private Exception exception; String mes; protected String doInBackground(String... params){ try{ //sock

下面的代码显示了如何将数据发送到服务器和从服务器接收数据

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

    private Exception exception;
    String mes;

    protected String doInBackground(String... params){

            try{

                //socket creation
                Socket socket= new Socket("192.168.0.115",8888);

                //send activity to server
                PrintWriter outToServer = new PrintWriter(
                        new OutputStreamWriter(
                                socket.getOutputStream()));

                //printing the received data
                outToServer.print(params[0]);

                //send the data to server and clear the output stream
                outToServer.flush();

                //Create the input stream to receive data
                DataInputStream dis2 = new DataInputStream(socket.getInputStream());

                //create the input stream reader to read the data
                InputStreamReader disR2 = new InputStreamReader(dis2);

                //Create the buffer reader to store the data
                BufferedReader br = new BufferedReader(disR2);





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



        return  null;

    }
公共类SendMessage扩展了异步任务{
私人例外;
字符串mes;
受保护的字符串doInBackground(字符串…参数){
试一试{
//套接字创建
插座=新插座(“192.168.0.115”,8888);
//将活动发送到服务器
PrintWriter outToServer=新的PrintWriter(
新的OutputStreamWriter(
getOutputStream());
//打印接收到的数据
outToServer.print(参数[0]);
//将数据发送到服务器并清除输出流
outToServer.flush();
//创建输入流以接收数据
DataInputStream dis2=新的DataInputStream(socket.getInputStream());
//创建输入流读取器以读取数据
InputStreamReader disR2=新的InputStreamReader(dis2);
//创建缓冲区读取器来存储数据
BufferedReader br=新的BufferedReader(disR2);
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
如何显示异步任务中存在的数据。 used//Toast.makeText(MainActivity.this,br,Toast.LENGTH_LONG.show();
但是我无法显示。

请看下面,您必须在AsyncTask中将返回类型作为BufferedReader传递,然后才能在onPost()方法中获得它

公共类SendMessage扩展了异步任务{
私人例外;
字符串mes;
受保护的BufferedReader doInBackground(字符串…参数){
试一试{
//套接字创建
插座=新插座(“192.168.0.115”,8888);
//将活动发送到服务器
PrintWriter outToServer=新的PrintWriter(
新的OutputStreamWriter(
getOutputStream());
//打印接收到的数据
outToServer.print(参数[0]);
//将数据发送到服务器并清除输出流
outToServer.flush();
//创建输入流以接收数据
DataInputStream dis2=新的DataInputStream(socket.getInputStream());
//创建输入流读取器以读取数据
InputStreamReader disR2=新的InputStreamReader(dis2);
//创建缓冲区读取器来存储数据
BufferedReader br=新的BufferedReader(disR2);
}捕获(IOE异常){
e、 printStackTrace();
}
返回br;
}
受保护的void onPostExecute(BufferedReader结果){
//在此处使用BufferedReader进行处理
}

对于Print BufferedReader数据,您需要在onPost()方法中传递此数据并在那里打印。doInBackground()方法永远不会直接打印任何内容。@GovindRathod尝试使用onPost()方法方法不能做到这一点,你能帮我解决这个问题吗problem@viswas请参考并尝试我的答案。请感谢我的支持。如果这对你有好处。需要任何帮助,请revert@GovindRathod好的,先生,谢谢you@vishwas你能检查一下吗?你必须改变doInBackground方法的返回类型先生,我能解决这个问题It’有问题,谢谢你的帮助,先生。
public class SendMessage extends AsyncTask<String,String, BufferedReader  > {

    private Exception exception;
    String mes;

    protected BufferedReader doInBackground(String... params){

            try{

                //socket creation
                Socket socket= new Socket("192.168.0.115",8888);

                //send activity to server
                PrintWriter outToServer = new PrintWriter(
                        new OutputStreamWriter(
                                socket.getOutputStream()));

                //printing the received data
                outToServer.print(params[0]);

                //send the data to server and clear the output stream
                outToServer.flush();

                //Create the input stream to receive data
                DataInputStream dis2 = new DataInputStream(socket.getInputStream());

                //create the input stream reader to read the data
                InputStreamReader disR2 = new InputStreamReader(dis2);

                //Create the buffer reader to store the data
                BufferedReader br = new BufferedReader(disR2);





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


protected void onPostExecute(BufferedReader result) {
        // process with your BufferedReader here
     }