コネクションの接続ができたら、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