simpleFtp 问题

1、设置连接超时

socket = new Socket();
SocketAddress socketAddress = new InetSocketAddress(host, port);
socket.connect(socketAddress, 5000);

2、获取列表信息


mDataSocket = getConnection();
sendLine("LIST ");
String response = readLine();
// 构造传输文件用的数据流
BufferedInputStream bis = new BufferedInputStream(mDataSocket
.getInputStream());
// 接收来自服务器的数据,写入本地文件
int n;
byte[] buff = new byte[1024];
while ((n = bis.read(buff)) > 0) {
String str = new String(buff,0,n);
Log.d(TAG, ""+ str);
}



private Socket getConnection() throws IOException {
sendLine("PASV");
String response = readLine();
Log.d("FTP", "getConnection response:" + response);
if (response == null || !response.startsWith("227 ")) {
throw new
IOException("SimpleFTP could not request passive mode: "
+ response);
}


String ip = null;
int port = -1;
int opening = response.indexOf('(');
int closing = response.indexOf(')', opening + 1);
if (closing > 0) {
String dataLink = response.substring(opening + 1, closing);
StringTokenizer tokenizer = new StringTokenizer(dataLink, ",");
try {
ip = tokenizer.nextToken() + "." + tokenizer.nextToken() + "."
+ tokenizer.nextToken() + "." + tokenizer.nextToken();
port = Integer.parseInt(tokenizer.nextToken()) * 256
+ Integer.parseInt(tokenizer.nextToken());
} catch (Exception e) {
throw new IOException(
"SimpleFTP received bad data link information: "
+ response);
}
}
Socket dataSocket = new Socket(ip, port);
return dataSocket;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值