2
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?

TCP/IP関数を組込み関数にしました。

Last updated at Posted at 2024-07-28

TCP/IP組込み関数

Easy-ISLisp ver5.10においてTCP/IP関連の基本的な機能をもつ関数を組込みにしました。従来、CラッパーによるTCP/IPライブラリが付属していたのですが、この際、組込みにして仕様変更、入れ替えることとしました。このライブラリ作成にあたってはPoldyさんにお世話になりました。その節はありがとうございました。C言語で書き直し、場合によっては仕様を拡張する柔軟性を持たせています。Easy-ISLispの名前のごとくTCP/IP関数もとってもイージーになっています。

仕様

〇 (create-server-socket n) サーバー用にポート番号nでソケットを生成します。

〇 (create-client-sokcet n IP) クライアント用にポート番号と相手方IPアドレスによりソケットを生成します。

〇 (send-socket socket str) ソケットに文字列strを送信します。

〇 (recv-socket socket) ソケットから文字列を受信します。

〇 (close-socket socket) ソケットを閉じます。

今のところ基本的な機能しかありません。実用は意図していません。計算実験、通信の理解を目的としています。

サーバー・クライアントの簡単なコード

bandicam 2024-07-28 16-15-20-551.jpg

このようにできるだけ簡単な仕組みでTCP/IPの学習ができるようになっています。

なぜLispでやるのか?

PythonやRubyには優秀なTCP/IP関連の機能があります。豊富なライブラリがあり、実用的に使えます。では、なぜいまさらLispで?

一昔前、インターネットの黎明期においてポールグレアム氏はLispの用いることで成功を収めました。混沌とした時代においてLispにアドバンテージがあったと思います。でも、今となってはそれもなさそうに思えます。

私はLispのもつ同図像性がセキュリティー上の利点にならないだろうか?と考えています。生物学的プログラミングです。ウイルスが変異をして人間のもつT細胞の攻撃を回避することにヒントがないだろうか?という思いつきです。

Lispでなにか面白い遊びはないものか?と日夜、楽しんでおります。

Easy-ISLisp

OSSです。ご自由にお使いください。フェードバッグがもらえると嬉しいです。
https://github.com/sasagawa888/eisl

2
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
2
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?