Пример #1
0
  @Override
  public void init(String remoteHost, int remotePort, InputStream in, OutputStream out)
      throws TransportException {
    connInfo = new ConnInfo(remoteHost, remotePort, in, out);

    try {

      log.info("Client identity string: {}", clientID);
      connInfo.out.write((clientID + "\r\n").getBytes(IOUtils.UTF8));
      connInfo.out.flush();

      // Read server's ID
      final Buffer.PlainBuffer buf = new Buffer.PlainBuffer();
      while ((serverID = readIdentification(buf)).isEmpty()) {
        int b = connInfo.in.read();
        if (b == -1)
          throw new TransportException("Server closed connection during identification exchange");
        buf.putByte((byte) b);
      }

      log.info("Server identity string: {}", serverID);

    } catch (IOException e) {
      throw new TransportException(e);
    }

    reader.start();
  }