关于服务器去掉socket.shutdownOutput()接收不到数据
package con.app.download;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.Socket;
public class AndroidRunable implements Runnable {
Socket socket = null;
Socket socket1=null;
public AndroidRunable(Socket socket) {
this.socket = socket;
this.socket1=socket;
}
@Override
public void run() {
// 向android客户端输出hello worild
String line = null;
InputStream input;
OutputStream output;
String str = "hello world!";
try {
input = socket.getInputStream();
BufferedReader bff = new BufferedReader(
new InputStreamReader(input));
//半关闭socket
socket.shutdownOutput();
//获取客户端的信息
while ((line = bff.readLine()) != null) {
System.out.println("****");
System.out.print(line);
}
output = socket1.getOutputStream();
// output = socket1.getOutputStream();
output.write(str.getBytes("gbk"));
output.flush();
System.out.println(line);
bff.close();
input.close();
socket.close();
socket1.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
代码如上图所示,我想先从客户端里读取相关的数据,然后根据读取的数据进行判断处理。但是如果把shutdownOutput去掉之后就接收不到数据,这是为什么?(原来的时候如果先发送数据在读取数据可以正常工作,但是如果碰到先读后写怎么办?)各位大神帮帮忙