MENU

Pythonでソケット通信を使ってデータを転送する方法 | Windowsマシンのクライアント側プログラム実装

  • URLをコピーしました!

※本ページはアフィリエイト広告を利用しています

前回の記事では、Pythonを使用してソケット通信のサーバーを構築する方法について学びました。

今回はその続きとして、クライアント側の実装に焦点を当てます。特に、Windows環境での実装について詳しく解説します。

目次

接続先のクライアント

今回、接続先の通信相手となるは、Raspberry Pi で動作するLinux上のPythonで記述されたサーバプログラムです。

サーバ側のコードについては、以下の記事で解説しています。

ソケット通信の概要についてもこちらの記事で解説していますので、あらかじめ確認しておいてください。

ライブラリのインストール

Pythonのソケットプログラミングで使用する主なライブラリは標準ライブラリに含まれているsocketですので、特別にインストールする必要はありません。

作成したPythonコード

今回作成するのはクライアント側のWindowsPCで動作するプログラムです。

待機状態のサーバーに対しメッセージを送信し、サーバー側から応答があったらその内容を表示するプログラムです。

  1. ソケットオブジェクトの作成: socket モジュールをインポートした後、socket.socket() 関数を用いてソケットオブジェクトを作成します。
  2. サーバーのホストとポートの設定: サーバーのIPアドレス(例:127.0.0.1)とポート番号(例:12345)を設定します。
  3. サーバーへの接続: connect() メソッドを用いて、設定したホストとポート番号でサーバーに接続します。
  4. テストメッセージの送信: send() メソッドを用いて、エンコードしたテストメッセージ(”テストメッセージ”)をサーバーに送信します。
  5. サーバーからの応答の受信: recv() メソッドを用いて、サーバーからの応答メッセージを受信します。
  6. 受信データのデコード: 受信したデータはバイト形式なので、decode() メソッドを用いて文字列にデコードします。
  7. ソケットのクローズ: 通信が終了したら、close() メソッドを用いてソケットを閉じます。

作成した全体のソースコード

import socket

# ソケットオブジェクトの作成
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# サーバーのホストとポート番号を指定
host = "127.0.0.1"
port = 12345

# サーバーに接続
client_socket.connect((host, port))
print("サーバーに接続しました。")

# テストメッセージを送信
client_socket.send("テストメッセージ".encode('utf-8'))
print("テストメッセージを送信しました。")

# サーバーからの応答メッセージを受信
data = client_socket.recv(1024).decode('utf-8')
print(f"サーバーからの応答: {data}")

# ソケットを閉じる
client_socket.close()

組込みソフトウェアの知識を仕事に活かすには

趣味でマイコンのプログラムを書いてるから、仕事でも活かしたいなあ。
でも自信が無い…

そんな時は、一度スクールで体系的に基礎を学ぶといいよ。

趣味のプログラミングスキルを活かしたいけど、「実務レベルで通用するか不安」という方には、プログラミングスクールを受講してみるのがおすすめです。

プログラミングスクールのカリキュラムは、企業の研修などでも利用されており、実践的で即戦力となるスキルを習得することが可能です。

Winスクールでは、Web系や機械学習、データサイエンスなどに加え、プログラミングスクールでは珍しいハードウェアを扱うC言語組み込みシステムやハードウェアとクラウドを連携させたIoTシステムの講座が非常に充実しています。

授業内容も受講者に対して組み込み用マイコンボードRaspberry Piを用意し、実機を使いながら学べる本格的なカリキュラムが用意されています。

また、受講者のスケジュールやロケーションに応じて、対面授業オンライン授業を選択、もしくは組み合わせて受講できるため、プログラミング初心者の方でも安心です。

家電自動車業界などへの転職を目指したい方に非常におすすめです。

また近年、クラウドソーシングのプラットフォームにも、マイコンボードを使った組み込みソフトウェアの開発案件も多く募集されており、副業でマイコンのソフトウェア開発を行う方も増えています。

クラウドワークスなどで「Raspberry Pi」と検索すると、開発解説記事作成などの案件が出てくるよ。

スクールで基礎をしっかり押さえておけば、安心して案件に応募できるね。

 プログラミング言語Python, C, C#, Java, JavaScript(React.js), Ruby, PHP, 他
 授業形式対面&オンラインが選択可能
 学習期間90分×40回(60時間)(C言語&組込みシステム開発(マイコンボード)コースの例)
 費用353,100円~(C言語&組込みシステム開発(マイコンボード)コース例)
 補助金、給付金一部の講座が教育訓練給付制度対象
 転職支援個別の就職カウンセリング、無料の就職支援セミナー
 実績・信頼性年間17,000人以上の受講者、年間1,484社の企業研修実績

\ Winスクール公式サイトを見てみる! /

まとめ

この記事で、PythonとWindowsを使用してソケット通信のクライアントを構築する方法について詳しく解説しました。

サーバーとの接続からデータの送受信までの手順を一つ一つ確認しました。

これでサーバー側とクライアント側の基本的なソケット通信の知識が身についたはずです。今後はこの基礎を活かして、さまざまなネットワークプログラミングに挑戦してみてください。

著:国本大悟, 著:須藤秋良, 監修:株式会社フレアリンク
¥2,640 (2023/10/20 11:53時点 | Amazon調べ)
\楽天ポイント5倍セール!/
楽天市場
\ポイント5%還元!/
Yahooショッピング
著:山田 祥寛
¥1,650 (2023/10/20 11:54時点 | Amazon調べ)
\楽天ポイント5倍セール!/
楽天市場
\ポイント5%還元!/
Yahooショッピング
よかったらシェアしてね!
  • URLをコピーしました!
目次