소개
이 랩에서는 활기찬 카니발을 배경으로, 기발한 판타지 풍선 아티스트가 등장하는 마법 같은 시나리오를 통해 Python 에서 소켓 프로그래밍의 세계를 탐구할 것입니다. 카니발은 흥분과 에너지로 북적이며, 판타지 풍선 아티스트는 그들의 멋진 창작물로 관객을 매료시킵니다. 이 랩의 목표는 소켓 프로그래밍의 영역으로 뛰어들어 카니발의 매혹적인 풍선 작품처럼 우리만의 마법 같은 네트워크 연결을 엮는 것입니다.
이 랩에서는 활기찬 카니발을 배경으로, 기발한 판타지 풍선 아티스트가 등장하는 마법 같은 시나리오를 통해 Python 에서 소켓 프로그래밍의 세계를 탐구할 것입니다. 카니발은 흥분과 에너지로 북적이며, 판타지 풍선 아티스트는 그들의 멋진 창작물로 관객을 매료시킵니다. 이 랩의 목표는 소켓 프로그래밍의 영역으로 뛰어들어 카니발의 매혹적인 풍선 작품처럼 우리만의 마법 같은 네트워크 연결을 엮는 것입니다.
이 단계에서는 Python 소켓 프로그래밍을 사용하여 간단한 클라이언트 - 서버 연결을 생성합니다. 클라이언트와 서버는 기본적인 상호 작용을 통해 통신하고 데이터를 교환합니다.
~/project 디렉토리에 server.py라는 새 Python 파일을 엽니다.server.py에 서버 측 코드를 구현합니다.## server.py
import socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 8888))
server_socket.listen(1)
connection, address = server_socket.accept()
with connection:
print('Connected by', address)
while True:
data = connection.recv(1024)
if not data:
break
connection.sendall(data)
~/project 디렉토리에 client.py라는 다른 Python 파일을 엽니다.client.py에 클라이언트 측 코드를 구현합니다.## client.py
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('127.0.0.1', 8888))
client_socket.sendall(b'Hello, server')
data = client_socket.recv(1024)
print('Received', repr(data))
이 두 파일을 동시에 실행하려면 "Split Terminal"을 클릭하십시오. 터미널에 다음 정보가 표시되어야 합니다.
labex:project/ $ python server.py
Connected by ('127.0.0.1', 40082)
labex:project/ $ python client.py
Received b'Hello, server'
이 단계에서는 전송을 위해 데이터를 직렬화하고 역직렬화하여 클라이언트와 서버 간의 통신을 향상시킬 것입니다.
server.py 코드를 수정합니다.## server.py
import socket
import pickle
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('127.0.0.1', 8888))
server_socket.listen(1)
connection, address = server_socket.accept()
with connection:
print('Connected by', address)
while True:
data = connection.recv(1024)
if not data:
break
deserialized_data = pickle.loads(data)
processed_data = deserialized_data.upper()
connection.sendall(processed_data.encode())
client.py 코드를 수정합니다.## client.py
import socket
import pickle
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('127.0.0.1', 8888))
data_to_send = pickle.dumps('Hello, server')
client_socket.sendall(data_to_send)
received_data = client_socket.recv(1024)
print('Received', received_data.decode())
이 두 파일을 동시에 실행하려면 "Split Terminal"을 클릭하십시오. 터미널에 다음 정보가 표시되어야 합니다.
labex:project/ $ python server.py
Connected by ('127.0.0.1', 40082)
labex:project/ $ python client.py
Received HELLO, SERVER
이 랩에서는 마법 같은 카니발 분위기와 환상적인 풍선 아티스트의 창작물에서 영감을 받아 Python 소켓 프로그래밍의 매혹적인 영역을 탐구했습니다. 클라이언트 - 서버 연결 생성, 데이터 직렬화를 통한 통신 향상 등의 단계를 안내함으로써 소켓 프로그래밍 기술을 마스터하고 소켓이 엮을 수 있는 놀라운 연결에 즐거움을 느낄 수 있도록 몰입형 교육 경험을 제공하는 것을 목표로 했습니다.