首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

关于socket错误java.net.SocketException:Bad file number

2012-09-01 
关于socket异常java.net.SocketException:Bad file number如题,我用socket连接服务器,在读取服务器信息的

关于socket异常java.net.SocketException:Bad file number
如题,我用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试试

热点排行