数据传输问题

keath90 2013-05-11 02:09:31
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循环中,如果不用循环的话,就只能接收一次数据,这个要怎么处理啊,求高人帮忙改代码
...全文
63 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
JPF1024 2013-05-11
  • 打赏
  • 举报
回复
另外你可以看看Selector这个类,用非阻塞的方式实现网络通信,我也刚开始学,你查查资料吧》
JPF1024 2013-05-11
  • 打赏
  • 举报
回复
http://www.07q.net/read/1785.html 参考一下吧,我最近也在学,共勉!建议导包的时候指定特定的类(比如:java.net.Socket;),有助于记忆.
rumlee 2013-05-11
  • 打赏
  • 举报
回复
利用一个线程池来处理接收到的数据。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧