Python ソケット通信(TCP)する方法 [socket server-client通信 プロセス間通信]

Python
この記事は約3分で読めます。

LinuxやWindowsでプロセス間(exe間)で通信をさせる場合や、ある機器間で通信通信させたい場合に
ソケット通信を用いて通信をすることはありませんか?
私は、よくソケット通信を用いて、データの引き渡しを行います。
実は、Pythonでもこのソケット通信を行うことは可能なんです。
そこで今回は、pythonでソケット通信を行う方法について、記載します。

サンプルコード

では、まずはServer・Clientの簡単なプログラムを書いてみましたので、以下に記載します。
Serverとは、通信のマスターとなる方で、ClientServerに接続するものです。

Server側(Server.py)

import socket

Portnum = 12345

def create_server(ip,port):
    server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    server.bind( (ip,port) )
    server.listen()
    return server

if __name__ == '__main__':
    server = create_server('127.0.0.1',Portnum)
    
    (con, client) = server.accept()
    print("Success connect to client", client)

    x = bytearray([1, 2, 3, 4])
    con.send(x)
    while(True):
        data = con.recv(1024)
        if not data :
            pass
        else:
            con.close()
            print( data.hex() )
            break
    print("Server finish")

Client側(clietn.py)

import socket

Portnum = 12345

def create_client(ip,port):
    client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    client.connect( (ip,port) )
    return client

if __name__ == '__main__':

    con = create_client('127.0.0.1',Portnum)
    
    print("Success connect to Server")
    while True:
        data = con.recv(1024)
        if not data :
            pass
        else:
            print( data.hex() )
            x = bytearray([5, 6, 7, 8])
            con.send(x)
            con.close()
            break

    print("Client finish")

実行結果は以下の通りです。

Server側

Client側

続いてはプログラムの解説ですが、解説は次ページにて記載します。

コメント

タイトルとURLをコピーしました