コード例 #1
0
 /** Leave broadcast group. */
 private void leaveGroup(InetAddress groupAddr) {
   try {
     // leave broadcast group.
     mReceiveSocket.leaveGroup(groupAddr);
   } catch (Exception e) {
     Log.e(TAG, "leave group fail. " + e.toString());
   }
 }
コード例 #2
0
 /** Join broadcast group. */
 private void join(InetAddress groupAddr) {
   try {
     // Join broadcast group.
     mReceiveSocket.joinGroup(groupAddr);
   } catch (Exception e) {
     Log.e(TAG, "Join group fail. " + e.toString());
   }
 }
コード例 #3
0
  @Override
  public void run() {
    try {
      mReceiveSocket = new MulticastSocket(Search.MULTICAST_RECEIVE_PORT);
      mReceiveSocket.setSoTimeout(Search.TIME_OUT);
      mMulticastAddress = InetAddress.getByName(Search.MULTICAST_IP);
    } catch (Exception e) {
      Log.e(TAG, "Create mReceiveSocket fail." + e);
    }

    join(mMulticastAddress);
    startListenServerMessage();
  }
コード例 #4
0
    public void run() {
      DatagramPacket inPacket;

      while (!mStopped) {
        try {
          inPacket = new DatagramPacket(new byte[1024], 1024);
          mReceiveSocket.receive(inPacket);
          byte[] data = inPacket.getData();

          SearchProtocol.decodeSearchLan(data, mListener);
        } catch (Exception e) {
          if (e instanceof SocketTimeoutException) {
            // time out, search again.
            Log.d(TAG, "GetPacket time out. search again.");
          } else {
            Log.e(TAG, "GetPacket error," + e.toString());
            if (mListener != null) {
              mListener.onSearchStop();
            }
          }
        }
      }
    }