[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 문서를 참고하시기 바랍니다.
참고: