[python] 소켓 리스닝(listening)과 연결 수락(accept)

소켓 프로그래밍은 네트워크 통신을 위한 강력한 도구로, 네트워크 응용프로그램을 개발하고 통신하는 데 사용됩니다. 이 문서에서는 Python 언어를 사용하여 소켓을 리스닝하고 연결을 수락하는 방법을 살펴봅니다.

소켓 생성과 연결 대기

우선 소켓을 생성하고 특정 포트에서 연결을 대기해야 합니다. 아래의 Python 코드를 통해 소켓을 생성하고 연결을 대기할 수 있습니다.

import socket

# 소켓 생성
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 호스트와 포트 설정
host = '127.0.0.1'
port = 12345

# 소켓 바인딩
server_socket.bind((host, port))

# 연결 대기
server_socket.listen(5)

연결 수락

이제 연결을 수락하는 과정에 대해 알아봅시다. accept 메서드를 사용하여 클라이언트의 연결 요청을 수락하고 데이터 통신을 시작할 수 있습니다.

# 클라이언트 연결 수락
client_socket, addr = server_socket.accept()
print(f'연결 수락: {addr}')

# 연결된 클라이언트와 데이터 통신
data = client_socket.recv(1024)
print(f'수신된 데이터: {data.decode()}')

# 소켓 닫기
client_socket.close()
server_socket.close()

위의 코드에서 accept 메서드는 클라이언트의 연결 요청을 수락하고, 연결된 클라이언트와의 통신을 위해 소켓을 리턴합니다.

결론

Python을 사용하여 소켓을 리스닝하고 연결을 수락하는 방법에 대해 알아보았습니다. 소켓 프로그래밍은 네트워크 응용프로그램의 핵심이며, 이러한 기술을 익힘으로써 강력하고 안정적인 네트워크 기반 애플리케이션을 만들 수 있습니다.

참고문헌: