@Override public void serialize(String name,byte[] message,OutputStream out) throws IOException {
  byte[] header=new byte[4 + COMMAND_LEN + 4+ 4];
  uint32ToByteArrayBE(params.getPacketMagic(),header,0);
  for (int i=0; i < name.length() && i < COMMAND_LEN; i++) {
    header[4 + i]=(byte)(name.codePointAt(i) & 0xFF);
  }
  Utils.uint32ToByteArrayLE(message.length,header,4 + COMMAND_LEN);
  byte[] hash=Sha256Hash.hashTwice(message);
  System.arraycopy(hash,0,header,4 + COMMAND_LEN + 4,4);
  out.write(header);
  out.write(message);
  if (log.isDebugEnabled())   log.debug("Sending {} message: {}",name,HEX.encode(header) + HEX.encode(message));
}

@ Override public void serialize ( String name , byte [ ] message , OutputStream out ) throws IOException { byte [ ] header = new byte [ 4 + COMMAND_LEN + 4 + 4 ] ; uint32ToByteArrayBE ( params . getPacketMagic ( ) , header , 0 ) ; for ( int i = 0 ; i < name . length ( ) && i < COMMAND_LEN ; i ++ ) { header [ 4 + i ] = ( byte ) ( name . codePointAt ( i ) & 0xFF ) ; } Utils . uint32ToByteArrayLE ( message . length , header , 4 + COMMAND_LEN ) ; byte [ ] hash = Sha256Hash . hashTwice ( message ) ; System . arraycopy ( hash , 0 , header , 4 + COMMAND_LEN + 4 , 4 ) ; out . write ( header ) ; out . write ( message ) ; if ( log . isDebugEnabled ( ) ) log . debug ( "Sending {} message: {}" , name , HEX . encode ( header ) + HEX . encode ( message ) ) ; }
writes message to to the output stream .
