[python] 소켓 통신 방법

Python은 소켓(socket) 통신을 통해 네트워크 상에서 데이터를 주고받을 수 있는 강력한 기능을 제공합니다. 소켓은 TCP/IP 프로토콜을 이용하여 서로 다른 시스템 간에 통신할 수 있도록 해주는 인터페이스입니다. 이 문서에서는 Python을 사용하여 소켓을 생성하고 데이터를 전송하는 방법에 대해 알아보겠습니다.

소켓 생성하기

먼저, 소켓을 생성하기 위해서는 socket 모듈을 import해야 합니다.

import socket

다음으로, 소켓을 생성합니다. 주로 TCP 소켓이나 UDP 소켓 중 하나를 선택하게 되는데, 각각의 경우에 대해 소켓을 생성하는 방법은 아래와 같습니다.

TCP 소켓 생성하기

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

UDP 소켓 생성하기

udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

socket.socket() 함수는 첫 번째 인자로 어떤 주소 체계를 사용할지(socket.AF_INET은 IPv4)와 두 번째 인자로 어떤 타입의 소켓을 생성할지(socket.SOCK_STREAM은 TCP, socket.SOCK_DGRAM은 UDP)를 지정합니다.

서버와 클라이언트 간의 통신

서버 소켓 만들기

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((server_ip, server_port))
server_socket.listen(1)
conn, addr = server_socket.accept()

클라이언트 소켓 만들기

client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((server_ip, server_port))

데이터 송수신

데이터 수신

data = conn.recv(1024)

데이터 전송

client_socket.sendall(b'Hello, server')

Python에서 sendall() 함수는 데이터를 송신할 때 사용되며, recv() 함수는 데이터를 수신할 때 사용됩니다.

이상으로 Python을 이용한 소켓 통신 방법에 대해 알아보았습니다. 소켓 통신을 통해 데이터를 안전하고 효과적으로 주고받을 수 있습니다. 더 많은 기능과 옵션에 대해서는 공식 Python 문서를 참고하시기 바랍니다.

참고: