java调用方法什么都不输出

时间:2012-10-25 12:14:44

标签: java list

我有一种方法,它接收IP,接收数据并将其存储在List中。在方法结束时,它返回此List。但是,调用此方法时,列表为空。我认为这是一个非常简单的解决方案,这是我愚蠢但是有人能指出我哪里出错了所以我不再这样做了吗?

public List<String> receiveDataFromOperator(){
    List<String> dataRec = new ArrayList<String>();

    try
    {

        System.out.println("Client Program");

        //Hard coded IP Address
        String ip = "146.176.226.147";

        //Hard coded port
        int port = 500;
        // Connect to the server
        Socket sock = new Socket(ip, port);

        // Create the incoming stream to read messages from
        DataInputStream network = new DataInputStream(sock.getInputStream());

        // Display our address
        System.out.println("Address: " + sock.getInetAddress());
        String line;

        // Loop until the connection closes, reading from the network
        while ((line = network.readUTF()) != null)
        {
            dataRec.add(line);


        }

        sock.close();
    }
    catch (IOException ioe)
    {


        //Test output for the arraylist size
        System.out.println(dataRec.size());


        for(int i = 0; i<dataRec.size(); i++){
            System.out.println("Line " + i + dataRec.get(i) + "\n");

        }



    }// End of catch

    return dataRec;

}//End of method

1 个答案:

答案 0 :(得分:3)

如果服务器正在用DataOutputStream.writeUTF()编写二进制数据,它应该可以正常工作。

如果要从服务器发送 text ,则需要使用BufferedReader.readLine()从套接字中读取文本。

BTW:当你得到一个IOException时,你通常不应该忽略它,并假装它没有发生esp。当程序没有按预期运行时。