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
}