1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

概要

mindが、謎なので調べてみた。
練習問題、やってみた。

練習問題

mindで生httpリクエストを取得せよ。

サンプルコード


エラー検査とは
 エラー?
 ならば
  エラー文字列で 重大エラー
 つぎに
。

メインとは
 ホスト名は 文字列
 ポート番号は 変数
 待ちソケットは 変数
 データソケットは 変数
 エラーコードは 変数
 文字列1は 文字列
 「localhost」を ホスト名に 入れ
 40001を ポート番号に 入れ
 「ホスト名 」を 表示し
 ホスト名を 表示し
 「 、」を 表示し
 ポート番号を 数値表示し
 「 番ポートで待つ。」を 一行表示する
 ホスト名と ポート番号と 1個で listenし
 待ちソケットに 入れ エラー検査し
 「listenの後」で このメッセージでスタック検査し
 「listen完。待ちソケット番号 = 」を 表示し
 待ちソケットを 数値表示し 改行する
 ここから
  「acceptします」を 一行表示し
  待ちソケットで acceptし
  データソケットに 入れ
  エラー?
  ならば
   「エラー:」を エラー出力し エラー文字列を 一行エラー出力し 打ち切り
  つぎに
  「accept完。データソケット番号 = 」を 表示し
  データソケットを 数値表示し 改行する
  ここから
   「クライアントからのデータを待っています。」を 一行表示し
   データソケットから ハンドル指定で一行読み出し 文字列1に 入れる
   データ終り?
   ならば
    「[EOF]クライアントが終了しました。」を 一行表示し 打ち切り
   つぎに
   「データ = 」を 表示し
   文字列1を 一行表示し
   「HTTP/1.1 200 OK」を 文字列1に 入れ
   文字列1を データソケットに ハンドル指定で一行書き込みする
  繰り返し
  「データソケットをクローズします」を 一行表示する
  データソケットを ハンドル指定でクローズする
  「待ちソケットをクローズします」を 一行表示する
  待ちソケットを ハンドル指定でクローズする
  打ち切り
 繰り返し
 「終わります。」を 一行表示する






実行結果

>nama0
ホスト名 localhost 、40001 番ポートで待つ。
listen完。待ちソケット番号 = -560
acceptします
accept完。データソケット番号 = -564
クライアントからのデータを待っています。
データ = GET / HTTP/1.1
クライアントからのデータを待っています。
データ = Host: localhost:40001
クライアントからのデータを待っています。
データ = Connection: keep-alive
クライアントからのデータを待っています。
データ = Cache-Control: max-age=0
クライアントからのデータを待っています。
データ = sec-ch-ua: "Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"
クライアントからのデータを待っています。
データ = sec-ch-ua-mobile: ?0
クライアントからのデータを待っています。
データ = sec-ch-ua-platform: "Windows"
クライアントからのデータを待っています。
データ = Upgrade-Insecure-Requests: 1
クライアントからのデータを待っています。
データ = User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
クライアントからのデータを待っています。
データ = Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
クライアントからのデータを待っています。
データ = Sec-Fetch-Site: none
クライアントからのデータを待っています。
データ = Sec-Fetch-Mode: navigate
クライアントからのデータを待っています。
データ = Sec-Fetch-User: ?1
クライアントからのデータを待っています。
データ = Sec-Fetch-Dest: document
クライアントからのデータを待っています。
データ = Accept-Encoding: gzip, deflate, br
クライアントからのデータを待っています。
データ = Accept-Language: ja,en-US;q=0.9,en;q=0.8
クライアントからのデータを待っています。
データ = Cookie: lb:user_data=eyJlbWFpbCI6bnVsbCwiaGV4X2NvbG9yIjoiIzYwQTVGQSIsImlkIjoibXJ3M200YW9qN2l6ajdraGg1NTVtcWlvNWl0aGlhN3kiLCJuYW1lIjpudWxsfQ==
クライアントからのデータを待っています。
データ = 
クライアントからのデータを待っています。
[EOF]クライアントが終了しました。
データソケットをクローズします
待ちソケットをクローズします
終わります。

以上。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?