[파이썬] 소켓 주소와 포트 설정

소켓 프로그래밍은 네트워크 통신을 위해 사용되는 핵심 기술입니다. 소켓을 사용하여 클라이언트와 서버 간에 데이터를 주고받을 수 있습니다. 이를 위해 소켓 주소와 포트를 설정해야 합니다.

소켓 주소와 포트는 통신에 사용되는 IP 주소와 포트 번호를 지정합니다. IP 주소는 클라이언트와 서버의 식별자로 사용되며, 포트 번호는 특정 서비스를 식별하는 데 사용됩니다.

소켓 생성과 주소 설정

Python에서 소켓을 생성하고 주소를 설정하는 방법은 다음과 같습니다:

import socket

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

# 서버 주소와 포트 설정
server_address = ('localhost', 12345)
sock.bind(server_address)

위의 예제에서 socket.AF_INET은 IPv4 주소 체계를 사용하고, socket.SOCK_STREAM은 TCP 소켓을 생성한다는 것을 나타냅니다. bind() 함수를 사용하여 소켓에 서버 주소와 포트를 바인딩합니다. 여기서 localhost는 현재 컴퓨터를 나타내는 로컬 호스트를 의미하며, 12345는 포트 번호입니다.

클라이언트 연결

클라이언트는 서버의 소켓 주소와 포트에 연결하여 데이터를 송수신할 수 있습니다. 다음은 클라이언트가 서버에 연결하는 예제입니다:

import socket

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

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

# 서버에 연결
sock.connect(server_address)

클라이언트에서도 socket.socket()을 사용하여 소켓을 생성하고, connect() 함수를 사용하여 서버 주소와 포트에 연결합니다.

포트 번호 선택

포트 번호는 통신에 사용되는 서비스를 식별하는 데 중요한 역할을 합니다. 일부 포트 번호는 특정 서비스에 예약되어 있으며, 다른 포트 번호는 프로그래머가 임의로 선택할 수 있습니다.

보통 1024보다 작은 포트 번호는 시스템 서비스에 예약되어 있으므로, 사용자 정의 서비스에는 1024보다 큰 포트 번호를 선택하는 것이 좋습니다.

마무리

Python의 소켓 프로그래밍을 위해 소켓 주소와 포트를 설정하는 방법을 알아보았습니다. 소켓을 생성하고 주소를 설정한 후, 클라이언트와 서버가 서로 연결하여 데이터를 주고받을 수 있습니다.

소켓 프로그래밍은 네트워크 통신에 필수적인 기술이므로, 소켓 주소와 포트 설정에 대한 이해는 매우 중요합니다. 올바른 주소와 포트 설정은 안정적이고 신뢰할 수 있는 네트워크 통신을 가능하게 합니다.