ZMQ zmq-socket
ZMQ の zmq-socket 関数のサンプルに、http server の例題があったので、真似して Fortran で書いて見ました。
ZeroMQ: Messaging for Many Applications
- 作者: Pieter Hintjens
- 出版社/メーカー: O'Reilly Media
- 発売日: 2013/03/12
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: Faruk Akgul
- 出版社/メーカー: Packt Publishing
- 発売日: 2013/03/26
- メディア: Kindle版
- この商品を含むブログを見る
実行例
ソース・プログラム
成り行きでいじっていたので、examples ディレクトリに作ってしまいましたw
O@HP8:~/f77_zmq-master/examples$ gfortran -g -O2 -Wall -Wno-unused -fopenmp test.f ../travis_ci/lib/libzmq.so libf77zmq.a -lzmq
include file のために、固定形式にしたので 72 桁制限があります。
program server implicit none include 'f77_zmq.h' integer(ZMQ_PTR) :: context integer(ZMQ_PTR) :: socket character(len = :), allocatable :: id, raw, http_response integer :: rc, id_size, iraw_size character(len = *), parameter :: CRLF = achar(13) // achar(10) allocate (character(len = 256):: id, raw) http_response = 'HTTP/1.0 200 OK' // CRLF // & 'Content-Type: text/html' // CRLF // & CRLF // & '<!DOCTYPE html>' // CRLF // & '<html>' // CRLF // & '<head>' // CRLF // & '<title>Fortran ZMQ http server</title>' // CRLF // & '</head>' // CRLF // & '<body>' // CRLF // & '<h1>Fortran ZMQ http server </h1>' // CRLF // & '<p>Make Fortran Great Again!</p>' // CRLF // & '</body>' // CRLF // & '</html>' context = f77_zmq_ctx_new() socket = f77_zmq_socket(context, ZMQ_STREAM) rc = f77_zmq_bind(socket, 'tcp://*:8080') if (rc /= 0) stop 'Initialization error!' do id_size = f77_zmq_recv(socket, id, 256, 0) if (id_size <= 0) stop 'id_size error!' do iraw_size = f77_zmq_recv(socket, raw, 256, 0) if (iraw_size < 0) stop 'raw_size error!' if (iraw_size == 256) cycle exit end do rc = f77_zmq_send(socket, id, id_size, ZMQ_SNDMORE) rc = f77_zmq_send(socket, http_response, & len(http_response), 0) rc = f77_zmq_send (socket, id, id_size, ZMQ_SNDMORE) rc = f77_zmq_send (socket, 0, 0, 0) end do rc = f77_zmq_close(socket) rc = f77_zmq_ctx_destroy(context) end program server
- 作者: Michael Metcalf,John Reid,Malcolm Cohen
- 出版社/メーカー: Oxford Univ Pr
- 発売日: 2018/11/06
- メディア: ハードカバー
- この商品を含むブログを見る
Parallel Programming with Co-arrays (Chapman & Hall/CRC Computational Science)
- 作者: Robert W. Numrich
- 出版社/メーカー: Chapman and Hall/CRC
- 発売日: 2018/09/10
- メディア: ハードカバー
- この商品を含むブログを見る
- 作者: Rafael Yanushevsky
- 出版社/メーカー: CRC Press
- 発売日: 2018/10/12
- メディア: ハードカバー
- この商品を含むブログを見る