[python] 파이썬에서 키 입력으로 소켓 통신하기

이번에는 파이썬으로 소켓 통신을 하면서 키 입력을 받는 방법에 대해 알아보겠습니다. 소켓 통신을 통해 데이터를 주고받을 때 사용자로부터 키 입력을 받는 기능은 매우 유용합니다.

소켓 통신이란?

소켓 통신은 네트워크 상에서 프로세스간에 데이터를 주고받기 위한 방법입니다. TCP/IP를 기반으로 하며, 클라이언트와 서버 사이의 연결을 이루어 데이터를 교환합니다.

파이썬에서 소켓 통신하기

먼저, 파이썬에서 소켓 통신을 하기 위해서는 socket 모듈을 import해야 합니다. 다음은 간단한 예시 코드입니다.

import socket

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

# 서버 주소와 포트 지정
server_address = ('localhost', 12345)

# 서버에 바인딩
server_socket.bind(server_address)

# 클라이언트의 연결 대기
server_socket.listen()

# 클라이언트의 연결 수락
client_socket, client_address = server_socket.accept()

# 클라이언트와의 통신
while True:
    # 키 입력 받기
    key = input("메시지를 입력하세요: ")

    # 클라이언트로 메시지 보내기
    client_socket.send(key.encode())

    # 클라이언트로부터 메시지 받기
    data = client_socket.recv(1024).decode()

    # 받은 메시지 출력
    print("서버로부터 받은 메시지:", data)

    # 종료 조건
    if key == 'bye':
        break

# 소켓 연결 종료
client_socket.close()
server_socket.close()

키 입력 받기

위의 코드에서 input 함수를 통해 사용자로부터 키 입력을 받습니다. 사용자가 입력한 메시지를 클라이언트 소켓을 통해 서버로 전송하고, 서버도 클라이언트로부터 메시지를 받아옵니다. 이후 받은 메시지를 출력합니다.

실행하기

위의 코드를 실행하면 서버가 실행되고 클라이언트가 연결되어 키 입력을 받을 수 있습니다. 메시지를 입력하세요:라는 프롬프트가 나타나면 원하는 메시지를 입력하고 엔터 키를 누르면 해당 메시지가 서버로 전송되고, 서버로부터 받은 메시지가 출력됩니다. bye를 입력하면 통신이 종료됩니다.

마무리

이렇게 파이썬에서 소켓 통신을 하면서 키 입력을 받는 방법을 알아보았습니다. 소켓 통신은 다양한 상황에서 사용되며, 키 입력 기능을 추가하면 더욱 유연하고 활용도가 높아집니다.