Files
2011-06-26 21:20:49 +00:00

141 lines
3.5 KiB
Java

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;
public final class Class5 implements Runnable
{
private int anInt90 = 268;
private InputStream anInputStream91;
private OutputStream anOutputStream92;
private Socket aSocket93;
private boolean aBoolean94 = false;
RSApplet anApplet_Sub1_95;
private byte[] aByteArray96;
private int anInt97;
private int anInt98;
private boolean aBoolean99 = false;
private boolean aBoolean100 = false;
public Class5(int arg0, Socket arg1, RSApplet arg2) throws IOException {
((Class5) this).anApplet_Sub1_95 = arg2;
aSocket93 = arg1;
aSocket93.setSoTimeout(30000);
aSocket93.setTcpNoDelay(true);
anInputStream91 = aSocket93.getInputStream();
while (arg0 >= 0)
anInt90 = -113;
anOutputStream92 = aSocket93.getOutputStream();
}
public void method125() {
aBoolean94 = true;
try {
if (anInputStream91 != null)
anInputStream91.close();
if (anOutputStream92 != null)
anOutputStream92.close();
if (aSocket93 != null)
aSocket93.close();
} catch (IOException ioexception) {
System.out.println("Error closing stream");
}
aBoolean99 = false;
synchronized (this) {
this.notify();
}
aByteArray96 = null;
}
public int method126() throws IOException {
if (aBoolean94 == true)
return 0;
return anInputStream91.read();
}
public int method127() throws IOException {
if (aBoolean94 == true)
return 0;
return anInputStream91.available();
}
public void method128(byte[] arg0, int arg1, int arg2) throws IOException {
if (aBoolean94 != true) {
int i;
for (; arg2 > 0; arg2 -= i) {
i = anInputStream91.read(arg0, arg1, arg2);
if (i <= 0)
throw new IOException("EOF");
arg1 += i;
}
}
}
public void method129(int arg0, int arg1, byte[] arg2, int arg3)
throws IOException {
if (aBoolean94 != true) {
if (aBoolean100) {
aBoolean100 = false;
throw new IOException("Error in writer thread");
}
if (aByteArray96 == null)
aByteArray96 = new byte[5000];
synchronized (this) {
for (int i = 0; i < arg3; i++) {
aByteArray96[anInt98] = arg2[i + arg0];
anInt98 = (anInt98 + 1) % 5000;
if (anInt98 == (anInt97 + 4900) % 5000)
throw new IOException("buffer overflow");
}
if (aBoolean99 == false) {
aBoolean99 = true;
((Class5) this).anApplet_Sub1_95.method12(this, 2);
}
this.notify();
}
if (arg1 != 0) {
for (int i = 1; i > 0; i++) {
}
}
}
}
public void run() {
System.out.println("clientstream writer starting");
while (aBoolean99 == true) {
int i;
int i1;
synchronized (this) {
if (anInt98 == anInt97) {
try {
this.wait();
} catch (InterruptedException interruptedexception) {
}
}
if (aBoolean99 == false)
break;
i = anInt97;
if (anInt98 >= anInt97)
i1 = anInt98 - anInt97;
else
i1 = 5000 - anInt97;
}
if (i1 > 0) {
try {
anOutputStream92.write(aByteArray96, i, i1);
} catch (IOException ioexception) {
aBoolean100 = true;
}
anInt97 = (anInt97 + i1) % 5000;
try {
if (anInt98 == anInt97)
anOutputStream92.flush();
} catch (IOException ioexception) {
aBoolean100 = true;
}
}
}
System.out.println("clientstream writer stopping");
}
}