import java.io.*;
import java.net.*;
import java.util.Arrays;import com.slcs.view.Login;
public class AcceptData {
public String data1;
 public   AcceptData()
 {
 try {
ServerSocket server=new ServerSocket(12345);
System.out.println("正在监听12345端口......");
//保持阻塞,等待连接
Socket s=server.accept();
BufferedInputStream bis=new BufferedInputStream(s.getInputStream());                   //向socket 写入数据
PrintWriter pw=new PrintWriter(s.getOutputStream(),true);

//接收从控制台接收的信息
InputStreamReader isr2=new InputStreamReader(System.in);
BufferedReader br2=new BufferedReader(isr2);

while(true)
{

  byte[] data=new byte[1024];
  int len=bis.read(data);
  data1=new String(Arrays.copyOf(data,len));
      System.out.println("接收到的数据:"+data1);
      
      
      System.out.println("发出: "+br2.readLine());
  pw.println(br2.readLine());
  
}

 

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

 }  


}
这是socket接收数据的代码,数据是源源不断的发来的,我的另外一个类需要用这里面的data1(这个类是用接收来的数据画图),但是这个会一直堵在while循环中,如果不用循环的话,就只能接收一次数据,这个要怎么处理啊,求高人帮忙改代码