【问题标题】:Android non-blocking read from socketAndroid 从套接字读取非阻塞
【发布时间】:2012-07-24 18:53:04
【问题描述】:

我需要一些帮助来实现从我的应用程序中的套接字读取数据。

我正在开发使用 Socket 侦听数据并解析接收到的数据的应用程序。问题是我需要连接到我的设备并启动套接字,这样我才能接收数据。我正在使用ServerSocket,它正在阻塞并等待停止另一个正在向我发送数据的套接字,然后解析数据。但我需要能够在关闭服务器的套接字之前读取流。

那么知道如何实现这种实现以及我必须使用哪些类?

【问题讨论】:

    标签: android sockets serversocket


    【解决方案1】:

    以下代码是我用来监听网络广播消息的代码:

    void startBroadcastListener(final int receivingPort)
    {
        new Thread() 
        {
            public void run() 
            {
                try 
                {
                    int port = receivingPort;
                    dsocket = new DatagramSocket(port);
                    byte[] buffer = new byte[2048];
    
                    DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
                    while (true) 
                    {
                        //System.out.println("Receiving...");
                        dsocket.receive(packet);
                        String msg = new String(buffer, 0, packet.getLength());
                        packet.setLength(buffer.length);
    
    
                        String binaryString = convertHexToBinary(packet.getData()).replaceAll("\\s","");
    
                        //System.out.println(packet.getAddress().getHostName() + ": " + binaryString);
                    }
                }
                catch (Exception e) 
                {
                    e.printStackTrace();
                }
            }
        }.start();
    }
    

    【讨论】:

      猜你喜欢
      • 2011-12-27
      • 2016-04-11
      • 2017-01-16
      • 1970-01-01
      • 1970-01-01
      • 2010-10-31
      • 2013-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多