RT。我写了一段socket的java代码  想要达到的效果是
用SecureCRT登录服务器后  服务器会返回出一段7788的东西 然后要你输入用户名密码
我就是要得到服务器返回给客户端的内容
但是我写了一段socket之后  链接服务器是成功了
但是服务器返回的内容却不打印出来.不知道怎么解决.
PS:链接的服务器是公司内部的服务器 不是自己写的.
下面是代码:
Socket socket = new Socket("XXX.XXX.XX.XXX", X);
        System.out.println("客户端socket:" + socket);
        PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
        BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        str = in.readLine();等于就是每次都是停在了  in.readLine();这里  如果把in.readLine(); 改成了 in.read();  可以打印出一个数字
好像是6万多
但是要打印服务器返回的内容就打印不出来了.不知道怎么解决.有知道的大侠帮个忙!!!!!!!!!!!!

解决方案 »

  1.   

    个人认为:因为readLine是要读取到\r\n数据才返回,不然就一直阻塞。所以用socket读取数据时,你必须知道服务器的返回数据内容。例如:你公司的服务器就返回7788。就要byte[] b = new byte[4];inputStream.read(b).String result = new String(b).这样就可以得到返回数据。
      

  2.   

    既然in.read()可以讀到東西,是只讀了一次?
    如果是的話,應該循環讀取,直到讀完為止。
      

  3.   

    你先用read循环读出来看看到底是什么信息。
    最好的是能知道服务器到底是怎么给你返回的,这样读才更有针对性