日期:2014-05-20  浏览次数:20769 次

socket 基础问题
package   test;
import   java.io.*;
import   java.net.ServerSocket;
import   java.net.Socket;
import   java.net.*;

public   class   test   {
        public   static   void   main(String[]   args)   {
                try   {
                        ServerSocket   server=new   ServerSocket(1991);
                        Socket   soc=server.accept();
                       
                        DataOutputStream   output=new   DataOutputStream(soc.getOutputStream());
                        output.write( "hello ".getBytes());
                       
                        BufferedReader   reader=new   BufferedReader(new   InputStreamReader(soc.getInputStream()));
                       
                        String   in=null;
                        while((in=reader.readLine())!=null)      
                        {
                                System.out.println(in);
                        }
                       
                }catch   (Exception   ex)   {
                        System.out.println(ex.getMessage());
                }
               

        }
}

问题在这里:

                        while((in=reader.readLine())!=null)      
                        {
                                System.out.println(in);
                        }


我不明白它为什么会一直循环等待输入。   如果我不输入。那in   不就是null了么   。。  
谢谢回答!

------解决方案--------------------
阻塞IO