Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

PythonでTCP/IPなsocket通信

昔ながらのsocket通信に出くわしたので試しにPythonで組んでみました。

実際のところ

送信側

import socket
import time

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
     s.connect(('127.0.0.1',9999))
     s.sendall(b"hello")

time.sleep(2)

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
     s.connect(('127.0.0.1',9999))
     s.sendall(b"bye")

受信側

#!/usr/bin/env python3

import os
import sys

import socket

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind(('127.0.0.1', 9999))
s.settimeout(None)
s.listen(1)

while True:
  conn, addr = s.accept()
  while True:
    data = conn.recv(1024)
    if not data:
        break
    print('data : {}'.format(data))
    if (data == b"hello"):
      print("hello done")
      break
    if (data == b"bye"):
      print("bye done")
      break
  conn.close()
s.close()

やってみると

$ python3 socktest.py
data : b'hello'
hello done
data : b'bye'
bye done