本記事では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^)/
リンク