太子プログラミングクラブ中級第1期(2026年2月)~IPアドレスで通信する~

太子プログラミングクラブは、2月から双方向通信をするプログラムに取り組みます。まずは、基本中の基本IPアドレスとはなんぞやというところからスタートです。

タイピングが出来ないと話にならない

中級になると、今まで以上にキー入力が増えます。キー入力はプログラミングでもAI活用でも肝心要です。初級3期を終えたメンバーも、もう一度タイピングを見直します。

偉そうに腕組みして見ていますが、これは「敵わないなあ」と肝念して見ているところです。私のベストスコアは、220字/分くらいです。自慢ですが、結構速い方です。

写真のメンバーは、このときで260字/分くらい。ベストは280字/分だそうです。1年少しくらいで抜かれました。もう敵いません。

クラブ全体を通して、すでに二人が私のベストスコアを超えました。さあ、3人目は誰だ!?

IPアドレスの取得から

パソコン同士で通信するには、自分のパソコンのIPアドレスを知らないと始まりません。まずはコマンドを打ってIPアドレスの確認をするところからです。今回は使いませんが、ついでにホストネームの確認もします。

$ipconfig
$hostname

下の写真のように、小学生のメンバーでも黒い画面でゴリゴリコマンドを打たせるのが私たちのクラブの方針です。

『牢獄の庭を歩く自由よりも、嵐の海だがどこまでも泳げる自由を、私なら選ぶ!』(沈黙の艦隊より)

某漫画の一節で、私の好きな言葉です。出来合いの教材ではなく、世の中の普通のツールを使うのはしんどいと思います。しかし、実際に使えてなんぼのこの世界、大人と同じ、またはそれ以上の力をつけてもらうためです。

受信プログラムと送信プログラム

IPアドレスが分かったら、受信するプログラムと送信するプログラムを書きます。

import socket

# 相手のIPアドレスを入力
target_ip = "相手のIPアドレス"

# サーバーに接続
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((target_ip, 12345))

print(f"{target_ip} に接続しました!")

# メッセージを送信
message = "相手に向けてメッセージを書く"
client.send(message.encode('utf-8'))

print("メッセージを送信しました!")

# 終了
client.close()
import socket

# サーバーの設定
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(('0.0.0.0', 12345))  
server.listen(1)

print("メッセージ待機中...")
print("相手が接続してくるまで待ちます")

# クライアントからの接続を待つ
client, address = server.accept()
print(f"{address} から接続されました!")

# メッセージを受信
message = client.recv(1024).decode('utf-8')
print(f"受信メッセージ: {message}")

# 終了
client.close()
server.close()

中級のメンバーは、これくらいのコードならあっという間に書いてしまいます。そして、驚くほどタイプミスが少ないのです。もっと言えば、エラーコードを読んで自分たちで修正してしまいます。

メンバーはよくできるがスタッフがポンコツだった

本日の私のミスと不運。

  • HDMIケーブルを忘れました。大画面が使えませんでした。
  • ルーターの設定を変更していませんでした。ノード相互の通信ができませんでした。
  • 部屋のコンセント電源がブレーカートリップしているのに気づくのが遅く、準備がすべて後手になりました。

申し訳ありませんでした。

もちろんリカバリーはしました。一部期待通りに動いたパソコンを全員に見てもらいました。

Pythonドリルもつけています

私はトラブル対応しながら、メンバーにはPythonドリルをしてもらいます。

完成された教材・機材を使っているわけではないので、いつだってトラブルはつきものです。しかしながら、トラブル時でもメンバーが自分たちで進められる教材を用意しています。

また、私の背中を見て、これが現実ということをメンバーには理解してほしいと思います。バグもトラブルもないコンピューターなんて存在しないので。