怎么判断程序用的端口有新数据来了

解决方案 »

  1.   

    用 ServerSocket 的accept()方法:ServerSocket servport = new ServerSocket(8080);
    servport.accept();
      

  2.   

    这只是个接受连接啊 
     我写了个内网聊天的   在代码中创建了一个线程 
    public void run()
         {
         try
         {
          DataInputStream di=new DataInputStream(s.getInputStream());  //s 为Socket
           while(true)
               {
            b.append("\n"+di.readUTF().toString());  //b为 TtextArea
            this.wait(100);                          //  死循环不释放CPU 我就让它wait(100) 给出CPU资源 好让我发送数据
               }
           }
         catch(Exception ee){}
         }
    可结果是发了一次数据后 (无论服务端还是客户端发送 都可以)  就不能发送第2次了  我的发送信息 写在一个JButton的 事件里 
      

  3.   

    答:改成如下代码试试:public void run() 
        { 
        try 
        { 
        BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));  
    //s 为Socket 
        String data=null;
          while((data=br.readLine())!=null) 
              { 
             b.append("\n"+data);  //b为 TtextArea 
           } 
          } 
        catch(Exception ee){} 
        } 
      

  4.   

     同样效果  我用JOptionPane 测试了  就是卡到  b.append("\n"+di.readUTF().toString());  //b为 TtextArea 
    而 楼上的和我一样 data=br.readLine()卡到这了
      不可能那个流只能读取一次吧