programming/python

(socket) 파이썬 소켓 통신

limmmmm 2023. 1. 25. 11:44
반응형
반응형

파이썬에서 소켓통신을 사용하는 방법에 대해서 말씀드리겠습니다.

Import

import socket

connection(서버 측)

HOST = '192.168.0.123'
PORT = 12345

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((HOST, PORT))
server_socket.listen()
  • port는 65535 이하로 해야됨

connection(클라이언트 측)

HOST = '192.168.0.123'
PORT = 12345

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((HOST, PORT))

write data

client_socket.sendall(data)
  • 본 예제에서는 json 형태로 데이터 보냄

read data

data = conn.recv(1024)
  • recv(1024)의 1024는 버퍼 사이즈로 받는 데이터의 크기를 정함. 대충 정한다음 받아서 print 찍고 덜받아지면 늘리고 하면 됨
  • 받은 데이터는 byte형태로 받아지므로 변형을 해줘야 함
  • 본 예제에서는 json으로 보내기 때문에 string으로 변환한 후 dict로 변환
data = conn.recv(1024)
data_to_str = data.decode('utf-8')     
data_to_dict = json.loads(data_to_str)
  • data_to_str : byte to string (encoding : utf-8) (바이트타입 데이터를 utf-8형태 문자열로 변환)
  • data_to_dict : string to dictionary (문자열을 딕셔너리 형태로 변환)
반응형