如题,我用socket连接服务器,在读取服务器信息的时候出现了这个错误。求大神帮忙解答啊代码如下
public void socketconnect()
{
byte[] b = new byte[1024];
try {
socket = new Socket(IPURL, PORT);
dos = new DataOutputStream(socket.getOutputStream());
dis = new DataInputStream(socket.getInputStream());
dos.write(GETbyte);//向服务器写数据
dos.flush();
new Thread(){
public void run() {
try {
// 接收服务器的反馈
// BufferedReader br = new BufferedReader(
// new InputStreamReader(socket.getInputStream()));
String msg = null;
System.out.println("开始读取");
while (dis.read() != -1)
System.out.println("接收服务器的反馈:"+msg);
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}catch (IOException e) {
Toast.makeText(activity, "连接服务器失败。。请查看服务器是否开启。", Toast.LENGTH_LONG).show();
e.printStackTrace();
}
finally
{
try {
dis.close();
dos.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
在dis.read()这个地方出错
------解决方案--------------------
是不是提示socket关闭了 可能是因为你在服务器那边线程结束了,所以对客户端对应的socket关闭了,也就导致客户端的socket关闭。所以要使服务器的socket不要关闭就行了。
------解决方案--------------------
为什么要用DataInputStream,改成BufferedInputStream试试