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套接字的应用,拓宽了我的编程视野,也激发了我对网络通信编程的探索热情 。

参考资料

posted @ 2025-04-15 20:45  YuanLeO  阅读(14)  评论(0)    收藏  举报