[python] 멀티스레드와 소켓 프로그래밍

본 포스트에서는 파이썬socket 모듈을 사용하여 멀티스레드를 활용한 소켓 프로그래밍에 대해 알아보겠습니다.

멀티스레드와 소켓 프로그래밍 소개

멀티스레딩은 하나의 프로세스에서 여러 스레드가 동시에 작업하는 방식을 말합니다. 소켓 프로그래밍은 소켓을 사용하여 네트워크 통신을 가능하게 하는 프로그래밍 기법입니다.

파이썬 소켓 프로그래밍

import socket
import threading

위 코드는 socketthreading 모듈을 임포트하는 예제입니다. 파이썬에서 소켓 프로그래밍을 위해 기본적으로 제공하는 socket 모듈을 사용할 수 있습니다.

멀티스레드 소켓 서버 예제

def client_thread(conn, addr):
    while True:
        data = conn.recv(1024)
        if not data:
            break
        conn.sendall(data)
    conn.close()

HOST = 'localhost'
PORT = 12345

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(5)

while True:
    conn, addr = s.accept()
    print('Connected by', addr)
    threading.Thread(target=client_thread, args=(conn,addr)).start()
s.close()

위 코드는 간단한 멀티스레드 소켓 서버의 예제입니다. 클라이언트로부터 데이터를 수신하고 다시 해당 클라이언트에게 데이터를 전송하는 기본적인 기능을 수행합니다.

마치며

이번 포스트에서는 파이썬의 소켓 프로그래밍과 멀티스레드를 이용한 소켓 서버에 대해 알아보았습니다. 이를 통해 네트워크 프로그래밍과 멀티스레딩에 대한 이해를 높일 수 있습니다.

참고문헌