public void run()
{
try
{
newLine = con.getCRLF();
if(Settings.getFtpPasvMode())
{
try
{
sock = new Socket(host, port);
sock.setSoTimeout(Settings.getSocketTimeout());
}
catch(Exception ex)
{
ok = false;
debug("Can't open Socket on port " + port);
}
}
else
{
//Log.debug("trying new server socket: "+port);
try
{
ssock = new ServerSocket(port);
}
catch(Exception ex)
{
ok = false;
Log.debug("Can't open ServerSocket on port " + port);
}
}
}
catch(Exception ex)
{
debug(ex.toString());
}
isThere = true;
boolean ok = true;
RandomAccessFile fOut = null;
BufferedOutputStream bOut = null;
RandomAccessFile fIn = null;
try
{
if(!Settings.getFtpPasvMode())
{
int retry = 0;
while((retry++ < 5) && (sock == null))
{
try
{
ssock.setSoTimeout(Settings.connectionTimeout);
sock = ssock.accept();
}
catch(IOException e)
{
sock = null;
debug("Got IOException while trying to open a socket!");
if(retry == 5)
{
debug("Connection failed, tried 5 times - maybe try a higher timeout in Settings.java");
}
finished = true;
throw e;
}
finally
{
ssock.close();
}
debug("Attempt timed out, retrying");
}
}
if(ok)
{
byte[] buf = new byte[Settings.bufferSize];
start = System.currentTimeMillis();
int buflen = 0;
//---------------download,下载----------------------
if(type.equals(GET) || type.equals(GETDIR))
{
if(!justStream)
{
try
{
if(resume)
{
File f = new File(file);
fOut = new RandomAccessFile(file, "rw");
fOut.skipBytes((int) f.length());
buflen = (int) f.length();
}
else
{
if(localfile == null)
{
localfile = file;
}
File f2 = new File(Settings.appHomeDir);
f2.mkdirs();
File f = new File(localfile);
if(f.exists())
{
f.delete();
}
bOut = new BufferedOutputStream(new FileOutputStream(localfile),
Settings.bufferSize);
}
}
catch(Exception ex)
{
debug("Can't create outputfile: " + file);
ok = false;
ex.printStackTrace();
}
}
//---------------upload,上传----------------------
if(type.equals(PUT) || type.equals(PUTDIR))
{
if(in == null)
{
try
{
fIn = new RandomAccessFile(file, "r");
if(resume)
{
fIn.skipBytes(skiplen);
}
//fIn = new BufferedInputStream(new FileInputStream(file));
}
catch(Exception ex)
{
debug("Can't open inputfile: " + " (" + ex + ")");
ok = false;
}
}
if(ok)
{
try
{
out = new BufferedOutputStream(sock.getOutputStream());
}
catch(Exception ex)
{
ok = false;
debug("Can't get OutputStream");
}
if(ok)
{
try
{
int len = skiplen;
char b;
while(true)
{
int read;
if(in != null)
{
read = in.read(buf);
}
else
{
read = fIn.read(buf);
}
len += read;
//System.out.println(file + " " + type+ " " + len + " " + read);
if(read == -1)
{
break;
}
if(newLine != null)
{
byte[] buf2 = modifyPut(buf, read);
out.write(buf2, 0, buf2.length);
}
else
{
out.write(buf, 0, read);
}
con.fireProgressUpdate(file, type, len);
if(time())
{
// Log.debugSize(len, false, false, file);
}
if(read == StreamTokenizer.TT_EOF)
{
break;
}
}
out.flush();
//Log.debugSize(len, false, true, file);
}
catch(IOException ex)
{
ok = false;
debug("Error: Data connection closed.");
con.fireProgressUpdate(file, FAILED, -1);
ex.printStackTrace();
}
}
}
}
}
}
catch(IOException ex)
{
Log.debug("Can't connect socket to ServerSocket");
ex.printStackTrace();
}
finally
{
try
{
if(out != null)
{
out.flush();
out.close();
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
try
{
if(bOut != null)
{
bOut.flush();
bOut.close();
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
try
{
if(fOut != null)
{
fOut.close();
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
try
{
if(in != null && !justStream)
{
in.close();
}
if(fIn != null)
{
fIn.close();
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
try
{
sock.close();
}
catch(Exception ex)
{
debug(ex.toString());
}
if(!Settings.getFtpPasvMode())
{
try
{
ssock.close();
}
catch(Exception ex)
{
debug(ex.toString());
}
}
finished = true;
if(ok)
{
con.fireProgressUpdate(file, FINISHED, -1);
}
else
{
con.fireProgressUpdate(file, FAILED, -1);
}
}
grant {
//对系统和用户目录“读”的权限
permission java.util.PropertyPermission "user.dir", "read";
permission java.util.PropertyPermission "user.home", "read";
permission java.util.PropertyPermission "java.home", "read";
permission java.util.PropertyPermission "java.class.pat", "read";
permission java.util.PropertyPermission "user.name", "read";
//对线程和线程组的操作权限
permission java.lang.RuntimePermission "accessClassInPackage.sun.misc";
permission java.lang.RuntimePermission "accessClassInPackage.sun.audio";
permission java.lang.RuntimePermission "modifyThread";
permission java.lang.RuntimePermission "modifyThreadGroup";
permission java.lang.RuntimePermission "loadLibrary.*";
//读写文件的权限
permission java.io.FilePermission "<<ALL FILES>>", "read";
permission java.io.FilePermission "${user.dir}${/}jmf.log", "write";
permission java.io.FilePermission "${user.home}${/}.JMStudioCfg", "write";
permission java.net.SocketPermissio "*", "connect,accept";
permission java.io.FilePermission "C:\WINNT\TEMP\*", "write";
permission java.io.FilePermission "C:\WINNT\TEMP\*", "delete";
permission java.awt.AWTPermission "showWindowWithoutWarningBanner";
permission javax.sound.sampled.AudioPermission "record";
// //操作Socket端口的各种权限
permission java.net.SocketPermission "-", "listen";
permission java.net.SocketPermission "-", "accept";
permission java.net.SocketPermission "-", "connect";
permission java.net.SocketPermission "-", "resolve";
permission java.security.AllPermission;
};
grant signedBy "saili" {
permission java.net.SocketPermission "*:1024-65535", "connect,accept,resolve";
permission java.net.SocketPermission "*:80", "connect";
permission java.net.SocketPermission "-", "listen, accept, connect, listen, resolve", signedBy "ganja";
permission java.net.SocketPermission "-", "accept";
permission java.net.SocketPermission "-", "connect";
permission java.net.SocketPermission "-", "resolve";
permission java.security.AllPermission;
};
//引入netscape类
import netscape.javascript.JSObject;
import netscape.javascript.JSException; //可允许在小程序中处理异常事件
public void callJavaScript(String callBackJavascript) {
JSObject window = JSObject.getWindow(this); // 获取JavaScript窗口句柄,引用当前文档窗口
JSObject docment = (JSObject) window.getMember("document");
form=(JSObject)doc.getMember("textForm"); //访问JavaScript form对象
textField=(JSObject)form.getMember("textField");访问JavaScript text对象
text=(String) textField.getMember("value"); //获取文本区的值
// 调用JavaScript的alert()方法
// window.eval("alert(\"This alert comes from Java!\")");
window.call(callBackJavascript, null);// 参数用数组的形式表示。
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有