BIO_read

コネクションの接続ができたら、BIO_writeで接続先にリクエストを書き込み、BIO_readで接続先からレスポンスを読み込む。

bio_read(3): BIO I/O functions - Linux man page

BIO_read.cで、

bgstation0.comのindex.htmlをGETするリクエスト文字列request_strを作成。
BIO_writeでrequest_strを書き込む。
あとは、BIO_readで読み込んだレスポンス文字列をresponse_bufに格納し、出力、これをなくなるまで繰り返す。

$ vi BIO_read.c
$ gcc -o BIO_read BIO_read.c -lssl -lcrypto
$ ./BIO_read
HTTP/1.1 200 OK
Date: Thu, 20 Apr 2017 12:26:03 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips
Last-Modified: Thu, 23 Feb 2017 02:40:59 GMT
ETag: "241-549298b0e24c0"
Accept-Ranges: bytes
Content-Length: 577
Connection: close
Content-Type: text/html; charset=UTF-8

<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title id="title_index">B.G-STATION</title>
  </head>
  <body id="body_index" bgcolor="#ffffff" text="#7700cc" link="0000ff" alink="ff0000" vli                                                                               nk="ff00ff">
    <div id="div_titleimage" align="center">
      <img src="http://www.geocities.co.jp/bg_sta/resource/image/title.png" width="460px"                                                                                height="140px" />
    </div>
    <div id="div_mainmenu" align="center">
      <div id="div_item_sample">
        <a href="sample/index.html">Sample</a>
      </div>
    </div>
  </body>
</html>
$

このようにレスポンスが返ってくる。

Sample/openssl/BIO_read/BIO_read/src/BIO_read at master · bg1bgst333/Sample · GitHub