Android无阻塞从套接字读取

时间:2012-07-26 08:10:51

标签: android sockets serversocket

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

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

所以任何想法如何实现这种实现以及我必须使用哪些类?

1 个答案:

答案 0 :(得分:0)

以下代码用于收听来自网络的广播消息:

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();
}