【Python】socketの使い方【ソケット通信】

【Python】socketの使い方【ソケット通信】

本記事ではPythonのモジュールであるsocketの使い方について超わかりやすく紹介しています。Pythonは非常に人気なプログラミング言語です。そんなPythonでソケット通信を可能にするsocketの使い方を一緒に学習しましょう!

本記事の目標

socketモジュールを利用して、ソケット通信を行います。
ソケットについては下の記事がすごく分かりやすかったので、理解の参考になるかと思います。
>>https://qiita.com/Kept1994/items/b28581f9cf2bd8383ef4

実行環境は「python 3.8.8」です。

全コード

「server.py」と「client.py」の2つのPythonファイルを作成しました。
注意点はソケットのデータはバイトのため、文字列はエンコードする必要があります。

server.pyは下のような感じです。
クライアントで処理が行われるまでずっとwhile文を続けます。

import socket

PORT = 50000
BUFFER = 1024

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind(('127.0.0.1', PORT))
    s.listen(1)
    # クライアントからデータが送られるまで待機
    while True:
        connection, address = s.accept()
        try:
            data = connection.recv(BUFFER)
            print('Client connected', address)
            print('-->',data)
            connection.sendall('receiverd : '.encode() + data)
        finally:
            connection.close()

client.pyは下のような感じ。
serverは処理が多いですが、clientはデータを送るだけなので比較的シンプルです。

import socket

PORT = 50000
BUFFER = 1024

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect(('127.0.0.1', PORT))
    s.sendall('hear_is_sendtext'.encode())
    data = s.recv(1024)
    print(repr(data))

両方実行してみる

「server.py」→「client.py」の順番で処理を実行すれば下のような感じです。
うまくソケット通信できていることがわかります。

【server.pyの実行結果】
Client connected ('127.0.0.1', 64988)
--> b'hear_is_sendtext'
【Client.pyの実行結果】
b'receiverd : hear_is_sendtext'

ということで本記事はPythonでのソケット通信を行うsocketを紹介しました。
最後まで読んでいただきありがとうございました\(^o^)/

超オススメのPC用品

PCを操作する上で、トラックボールマウスが非常におすすめです!
僕も感動したこのマウスを、騙されたと思って使ってみてください!(^^)

外部モニターで2倍以上の効率化が見込めます!
安いものだと、たったの1万円前後なのでおすすめですよー!\(^o^)/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です