20244201邢家源 《Python程序设计》实验三报告
课程:《Python程序设计》
班级: 2442
姓名: 邢家源
学号:20244201
实验教师:王志强
实验日期:2025年4月15日
必修/选修: 公选课
1.实验内容
创建服务端和客户端,服务端在特定端口监听多个客户请求。客户端和服务端通过Socket套接字(TCP/UDP)进行通信。
2. 实验过程及结果
(1)创建服务端和客户端,选择一个通信端口,用Python语言编程实现通信演示程序;
1️⃣编写客户端程序代码
import socket
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接到服务器
server_address = ('localhost', 50000)
client_socket.connect(server_address)
while True:
# 发送消息给服务器
message = input('请输入要发送给服务器的消息: ')
client_socket.send(message.encode('utf-8'))
# 接收服务器消息
data = client_socket.recv(1024).decode('utf-8')
if not data:
break
print('服务器说: {}'.format(data))
if (input("是否继续Y/N?")=="N"):
break
client_socket.close()
2️⃣编写服务器端程序代码
import socket
server_socket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#绑定地址和端口
server_address = ('192.168.43.20',5000) #host地址
server_socket.bind(server_address)
#监听
server_socket.listen(1)
print("服务器正在连接")
client_socket, client_address = server_socket.accept()
print('接受来自{}的连接'.format(client_address))
while True:
data = client_socket.recv(1024)
if not data:
break
print("收到客户端信息", data.decode('utf-8'))
response = input("请回复:")
client_socket.sendall(response.encode('utf-8'))
client_socket.close()
3️⃣作为客户端进行测试,尝试与服务器端的同学进行歌词接龙。
4️⃣作为服务器端进行测试,尝试与客户端的同学进行歌词接龙。
3. 实验过程中遇到的问题和解决过程
问题:while 循环停不下来
解决:条件逻辑写得不对。比如 “while True”,没跳出语句就一直跑
其他(感悟、思考等)
通过这次实验,我深切感受到Python在网络编程方面的强大与便捷。在实践过程中遭遇while循环问题,让我明白编程细节的重要性。Socket套接字的应用,拓宽了我的编程视野,也激发了我对网络通信编程的探索热情 。