String connectRequest = "Request: CON USER "
+ name.getText() + " PASS "
+ psw.getText();
request(connectRequest);
System.out.println(client+"$$$$$$$$$$$$$$$");
String response=getResponse().toString();
/**
* 获取服务器端的响应信息..
*
* @param sock
* @return
*/
private StringBuffer getResponse() {
StringBuffer buffer = new StringBuffer();
InputStream in=null;
//在这时socket就已经关了
try {
in = client.getInputStream();
byte[] buf = new byte[8192];
int len = 0;
while ((len = in.read(buf)) != -1) {
buffer.append(new String(buf, 0, len));
if(len<=8192){
break;
}
}
} catch (IOException e) {
System.out.println("exception in getResponse.");
e.printStackTrace();
}finally{
close(in);
}
System.out.println(buffer.toString()+"----");
return buffer;
}
/**
* 向服务器端发出请求
*
* @param socket
* @param str
* 客户端请求命令
*/
private void request( String str) {
OutputStream out=null;
try {
out = client.getOutputStream();
byte[] buffer = str.getBytes();
int len = buffer.length;
out.write(buffer, 0, len);
System.out.println(str + " send.");
} catch (IOException e) {
System.out
.println("client socket get output stream failed. request");
e.printStackTrace();
}finally{
close(out);
}
}
我在做一个FTP协议应用的程序,client是Socket全局变量。不过当request方法调用完了,再调用getResponse()方法是发生socket异常,说socket is closed。请哪位大侠给解决下 !!!!!!