java中的套接字读取策略

java中的套接字读取策略,java,sockets,Java,Sockets,我有一个项目,我将从TCP端口接收数据,我需要不断等待,以检查我是否收到数据 我现在的代码是: Socket socket = new Socket(); socket.connect(new InetSocketAddress(ip,8000)); while(true){ DataOutputStream outToClient = new DataOutputStream(socket.getOutputStream

我有一个项目,我将从TCP端口接收数据,我需要不断等待,以检查我是否收到数据

我现在的代码是:

        Socket socket = new Socket();
        socket.connect(new InetSocketAddress(ip,8000));

        while(true){
            DataOutputStream outToClient = new DataOutputStream(socket.getOutputStream());
            InputStream inFromClient = socket.getInputStream();

            while(true){
                int i = inFromClient.read();

                System.out.println("data = " + i);
                l++;                
            }
我不喜欢这种基于while(true)的策略,有一些策略可以从回调或类似的东西接收数据?

您可以使用java文件I/O(以NIO.2为特色)。请按照链接获取示例

您可以使用java文件I/O(以NIO.2为特色)。请按照链接获取示例


您考虑过NIO吗?它的工作有点“回调”…你能给我提供一些工作的客户端套接字阅读器的例子吗?谷歌可以。只要输入“JavaNIOSocket”-你就会有很多教程…你考虑过NIO吗?它的工作有点“回调”…你能给我提供一些工作的客户端套接字阅读器的例子吗?谷歌可以。只需输入“JavaNIOSocket”-您将有大量的教程。。。