📄 netclientreader.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 + -