0

アプリケーションでソケットからデータを読み取る実装について少し助けが必要です。

ソケットを使用してデータをリッスンし、受信したデータを解析するアプリケーションに取り組んでいます。問題は、データを受信できるように、デバイスに接続してソケットを開始する必要があることです。私はServerSocket、データを送信している他のソケットをブロックして停止するのを待っているものを使用し、その後データを解析していました。しかし、サーバーのソケットを閉じる前にストリームを読み取れるようにする必要があります。

どうすればこの種の実装を実現でき、どのクラスを使用する必要があるのでしょうか?

4

1 に答える 1

0

The following code is what im using to listen broadcast messages from network:

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();
}
于 2012-07-26T08:18:33.177 に答える