使用套接字循环输入流

时间:2013-04-06 09:51:25

标签: java inputstream

Java sending and receiving file (byte[]) over sockets

参考上面的问题,我只是想问一下如何将这段代码放在循环中以便从客户端接收多个图像?我已经尝试但它不会停在(count = is.read(bytes))> 0一旦它第一次读取。请求帮助

1 个答案:

答案 0 :(得分:1)

我确实不确定我完全理解你的问题,但我会尽力帮助。所以你想拥有连接客户端/服务器无限的时间?因此,尝试将服务器客户端和客户端本身作为线程,然后将步骤放在循环中。试试这个样本。

connection = new Socket("IP",PORT);
        input = new DataInputStream(connection.getInputStream());
        output = new DataOutputStream(connection.getOutputStream());
        new Thread(new Runnable() {

        public void run(){
            while(true){
            try
            {
                System.out.println(">>" + input.readUTF());
            }
            catch(Exception e){
                try
                {
                    input.close();
                    output.close();
                    connection.close();
                }
                catch(Exception e2)
                {}
             }
            }
        }
        }).start(); 

        Scanner scan = new Scanner(System.in);

        while(true)
        {
            String data = scan.nextLine();
            output.writeUTF(data);
        }

这是客户端的代码。您还必须拥有接受所有数据并发送回信息的ClienT Service线程!希望我有所帮助,因为我不确定我是否正确理解了这个问题。祝你好运!