Прослушивание сокета на конкретном номере порта в качестве клиента - PullRequest
0 голосов
/ 27 августа 2018

Я хочу знать, как прослушивать определенный порт, например, когда приложение является клиентом; IP: 127.0.0.1 и номер порта 12345. Существует приложение Windows, которое может прослушивать входящие данные с сервера каждые 2 минуты, но Inputstrem вообще не работает с данными сервера. Это работает только всякий раз, когда я отправляю коды запросов на сервер. Как я могу решить эту проблему? Заранее спасибо

Это код моего получателя:

private void receiveData(){
    // Again, probably better to store these objects references in the support class
    if(getSocket() != null && getSocket().isConnected()){
        try {
            Log.i("Log", "Ready to receive!");
            byte[] buffer  = new byte[8192];
            final ByteArrayOutputStream baos = new ByteArrayOutputStream();
            int bytesRead = -1;
            while((bytesRead = inputStream.read(buffer)) != -1){
                baos.write(buffer, 0, bytesRead );
                rec_buffer = baos.toByteArray();
                for (int i = 0; i< size; i++)
                    //Log.i("Log", "Data i: " + rec_buffer[i]);
                    Log.i("Log", "Data i: " + String.format("0x%20x", rec_buffer[i]));
                mResponseHandler.post(new Runnable(){
                    @Override
                    public void run(){
                        if(mCallback != null){
                            baos.reset();
                            mCallback.onDataReceived(rec_buffer);
                        }
                    }
                });
            }

        } catch (IOException e) {
            Log.e("Log", "Error occured during receiving data");
            e.printStackTrace();
        }
    }
}
...