LoginSignup
1
0

mindの研究 その33 - mindでtcp server

Last updated at Posted at 2023-11-24

概要

mindが謎なので調べてみた。
サンプルのtcp serverやって見た。

写真

image.png

サンプルコード




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

メインとは (ホスト名、ポート番号 → ・)
 ホスト名は 文字列
 ポート番号は 変数
 待ちソケットは 変数
 データソケットは 変数
 エラーコードは 変数
 文字列1は 文字列
 起動引数(1)を ホスト名に 入れ
 起動引数(2)を 数値変換し
 偽?
 ならば
  「ポート番号が誤りです」で 重大エラー
 つぎに
 ポート番号に 入れ
 「ホスト名 」を 表示し ホスト名を 表示し 「 、」を 表示し ポート番号を 数値表示し 「 番ポートで待つ。」を 一行表示する
 ホスト名と ポート番号と 1個で (=listen数) listenし 待ちソケットに 入れ エラー検査し
 「listenの後」で このメッセージでスタック検査し
 「listen完。待ちソケット=」を 表示し 待ちソケットを 数値表示し 改行する
 ここから
  「acceptします」を 一行表示し
  待ちソケットで acceptし データソケットに 入れ
  エラー?
  ならば
   「エラー:」を エラー出力し エラー文字列を 一行エラー出力し
   打ち切り
  つぎに
  「accept完。データソケット=」を 表示し データソケットを 数値表示し 改行する
  ここから
   「クライアントからのデータを待っています。」を 一行表示し
   データソケットから ハンドル指定で一行読み出し 文字列1に 入れる
   データ終り?
   ならば
    「[EOF]クライアントが終了しました。」を 一行表示する
    打ち切り
   つぎに
   「データ=」を 表示し 文字列1を 一行表示し 「返すデータ(終了はEnterのみ):」を 表示する
   文字列入力し 文字列1に 入れ
   文字列1が
   空列?
   ならば
    打ち切り
   つぎに
   文字列1を データソケットに ハンドル指定で一行書き込み
   「データ受信ループ内」で このメッセージでスタック検査し
  繰り返し
  「データソケットをクローズします」を 一行表示する
  データソケットを ハンドル指定でクローズする
  「待ちソケットをクローズします」を 一行表示する
  待ちソケットを ハンドル指定でクローズする
  打ち切り
 繰り返し
 「終わります。」を 一行表示する
 「メインの終わり」で このメッセージでスタック検査する。





実行結果

>server localhost 40001
ホスト名 localhost 、40001 番ポートで待つ。
listen完。待ちソケット=-504
acceptします
accept完。データソケット=-572
クライアントからのデータを待っています。
データ=23
返すデータ(終了はEnterのみ):52
クライアントからのデータを待っています。

以上。

1
0
2

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