⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listenthread.java

📁 利用Java Socket写的一段通讯协议
💻 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 + -