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

📄 netclientreader.java

📁 用java写的画图板程序
💻 JAVA
字号:
/**
 * NetClientReader
 * 
 * Created on September 6,2008, 16:20
 * 
 * 用于不停的接受服务端的消息,线程实现
 */

package draw;

import java.io.*;
import java.net.*;
import java.util.*;

/**
 * @author 王宽
 *
 */

public class NetClientReader implements Runnable {
	Socket socket;
	BufferedReader reader;
	draw.DrawingBoard board ;
	//ArrayList list = new ArrayList();
	//test
	
	/**
	 * 构造函数,建立与服务器的一个连接
	 * 并且初始化输入流
	 */
	
	public NetClientReader(draw.DrawingBoard bd, Socket s){
		board = bd;
		socket = s;
		//test
		try{
			reader=new BufferedReader(new InputStreamReader(socket.getInputStream()));
			//reader=new ObjectInputStream(new FileInputStream(new File("c:/test3.ser")));
		}catch(IOException e){
			e.printStackTrace();
		}
	}
	
	/**
	 * 	线程
	 *	读入输入流中的信息
	 *	传递给画板后进行重绘
	 */
	public void run(){
		String s = null;
		try{
			//s = reader.readLine();
			//System.out.println(s + "add list");
			while(true){
			int sign = 0;
			s = reader.readLine();
			//System.out.println(s + "add list1");
			if(s.equals("")) continue;
			if(s.equals("start")){
				ArrayList list = new ArrayList();
				while(!(s=(String)(reader.readLine())).equals("end")){
					if(s.equals("")) continue;	
					//System.out.println(list.size());
					for(int i=0; i<list.size(); i++){
						sign = 0;
						String[] split1= ((String) list.get(i)).split("\t");
						String[] split2= s.split("\t");
						//if(split2[0].equals("draw.PolyGon")) break;
						if(!split1[0].equals(split2[0])) continue;
						String[] split3= split1[1].split(":");
						String[] split4= split2[1].split(":");
						if(!split3[2].equals(split4[2])) continue;
						if(!split3[3].equals(split4[3])) continue;
						if(!split3[4].equals(split4[4])) continue;
						if(!split3[5].equals(split4[5])) continue;
						list.set(i, s);
						sign = 1;
						break;
					}
					if(sign == 0){
						//System.out.println(s + "add list2");
						list.add(s);
					}
				}
			board.setShapes(list);
			}
			}
		}catch(Exception e){
			e.printStackTrace();
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -