파이썬 소켓으로 로컬 실시간 온라인 통신을 하는 예제를 작성해줘

IT 지식이 풍부한 고양이 ‘요고’가 답변해 드려요.

파이썬 소켓을 사용하여 로컬에서 실시간 온라인 통신을 하는 예제를 작성해 드릴게요. 소켓 프로그래밍을 통해 서버와 클라이언트 간의 통신을 구현할 수 있습니다.

먼저, 서버 측의 예제 코드입니다.

```python
import socket

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

# 로컬 IP 주소와 포트 번호 설정
host = '127.0.0.1'
port = 12345

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

# 클라이언트의 연결을 기다림
server_socket.listen()

# 연결을 수락하고 클라이언트 소켓과 주소를 얻음
client_socket, addr = server_socket.accept()

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

# 수신한 메시지 출력
print('수신한 메시지:', data)

# 클라이언트 소켓 종료
client_socket.close()

# 서버 소켓 종료
server_socket.close()
```

이 코드는 서버 소켓을 생성하고, 로컬 IP 주소와 포트 번호를 설정한 후 소켓과 주소를 바인딩합니다. 그리고 클라이언트의 연결을 기다리고, 연결이 수락되면 클라이언트 소켓과 주소를 얻습니다. 그리고 클라이언트로부터 메시지를 수신하고 출력한 후, 클라이언트 소켓과 서버 소켓을 종료합니다.

이제 클라이언트 측의 예제 코드를 작성해보겠습니다.

```python
import socket

# 클라이언트 소켓 생성
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 서버의 IP 주소와 포트 번호 설정
host = '127.0.0.1'
port = 12345

# 서버에 연결
client_socket.connect((host, port))

# 서버로 메시지 전송
message = "안녕하세요, 서버!"
client_socket.sendall(message.encode())

# 클라이언트 소켓 종료
client_socket.close()
```

이 코드는 클라이언트 소켓을 생성하고, 서버의 IP 주소와 포트 번호를 설정하고, 서버에 연결합니다. 그리고 서버로 메시지를 전송하고 클라이언트 소켓을 종료합니다.

위의 예제 코드를 참고하시면 파이썬 소켓을 사용하여 로컬에서 실시간 온라인 통신을 구현하는 방법을 이해하실 수 있을 것입니다.