?? listenthread.java
字號:
package com.ict.netcom2.trash;
import java.net.*;
import java.io.*;
import com.ict.netcom2.message.*;
public class ListenThread extends Thread {
Socket skt;
PipedOutputStream out = new PipedOutputStream();
public ListenThread(Socket skt) {
this.skt = skt;
}
public PipedOutputStream getOutputStream() {
return out;
}
public void run() {
try {
DataInputStream dis = new DataInputStream(skt.getInputStream());
PrintStream ps = new PrintStream(new BufferedOutputStream(
skt.getOutputStream()));
MessageDecoder md = new MessageDecoder(dis);
MessageEncoder me = new MessageEncoder();
// at least safe now...
md.decodeConnect();
ps.write(me.encodeConnectAck(0));
ps.flush();
dis.close();
dis = new DataInputStream(skt.getInputStream());
//byte[] b = new byte[21];
//dis.read(b);
//int oriLen = ;
/*
oriLen &= Integer.MAX_VALUE;
byte[] b = new byte[oriLen];
dis.read(b);
*/
long len = Long.parseLong(Integer.toBinaryString(dis.readInt()), 2);
//System.out.println("[ListenThread] len: "+len);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//ByteBuffer buf = ByteBuffer.wrap(new byte[4]);
//buf.asIntBuffer().put(oriLen);
//byte[] b = new byte[4];
//buf.get(b);
//baos.write(b);
for (long i=0; i<len; i++) {
baos.write(dis.readByte());
}
out.write(baos.toByteArray());
baos.close();
out.flush();
dis.close();
out.close();
skt.close();
/*
// detect
int ln = 512;
b = new byte[ln];
dis.read(b);
for (int i=0; i<ln; i++) {
String str = Byte.toString(b[i]);
System.out.print(str+" ");
}
System.out.println();
*/
} catch (Exception e) {
e.printStackTrace();
}
}
public void die() {
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -