[python] 소켓 프로그래밍을 이용한 파일 전송

이번 포스트에서는 Python을 사용하여 소켓 프로그래밍을 통해 파일을 전송하는 방법을 알아보겠습니다.

소켓 프로그래밍이란?

소켓 프로그래밍은 컴퓨터 네트워크를 통해 데이터를 주고받기 위한 방법 중 하나입니다. 이를 통해 서버와 클라이언트 간 데이터 통신이 가능해집니다.

Python 소켓 프로그래밍을 통한 파일 전송

먼저, 파일을 보내는 측과 받는 측의 코드를 작성합니다. 파일을 전송하는 측은 서버로, 파일을 받는 측은 클라이언트로 동작하게 됩니다.

서버 (파일을 전송하는 측)

import socket

# 파일을 연다
with open('전송할_파일.jpg', 'rb') as file:
    file_data = file.read()

# 서버 소켓을 열고 클라이언트의 연결을 기다림
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('0.0.0.0', 12345))
server_socket.listen(1)
client_socket, addr = server_socket.accept()

# 파일 데이터를 클라이언트에게 전송
client_socket.sendall(file_data)

# 소켓을 닫음
client_socket.close()
server_socket.close()

클라이언트 (파일을 받는 측)

import socket

# 서버에 연결
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('서버_IP주소', 12345))

# 파일 데이터를 받음
file_data = client_socket.recv(1024)

# 받은 데이터를 파일로 저장
with open('받은_파일.jpg', 'wb') as file:
    file.write(file_data)

# 소켓을 닫음
client_socket.close()

결론

이렇게 Python의 소켓 프로그래밍을 이용하여 파일을 전송할 수 있습니다. 이를 응용하여 서버와 클라이언트 간에 다양한 데이터를 주고받을 수 있습니다. 소켓 프로그래밍을 통한 파일 전송은 네트워크 프로그래밍에서 중요한 기술 중 하나이므로, 관련 기술에 대해 더 알아보시기를 권장합니다.

참고 자료: