2012-07-26 167 views
0

我需要一点帮助,从我的应用程序中实现从套接字读取数据。Android非阻塞从套接字读取

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

所以,任何想法我怎么能实现这种实现,我必须使用哪些类呢?

回答

0

下面的代码是用来听来自网络广播消息什么IM:

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