1. 简易对讲程序的需求
对讲机程序,就是双方互相通话的过程,简单一点的逻辑就是双方每次只能说一句话,然后等待对方回答之后继续说话。
2. 编程实现服务端
import socket
# 创建服务端套接字对象
service = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定主机和端口号
service.bind(("", 8888))
# 启动监听
service.listen(1)
# 接收客户端连接
print("服务端程序启动成功,等待客户端接入.....")
conn, addr = service.accept()
print("客户端已经接入,可以进行通信" + str(addr) + ";等待客户端发送消息...")
# 发送欢迎消息
conn.sendall("天王盖地虎,宝塔镇河妖".encode("utf-8"))
# 循环读取消息
while True:
# 接收并打印客户端发送消息
msg = conn.recv(1024)
msg = msg.decode("utf-8")
print("客户端:" + msg)
# 如果客户端发送bye字符串,跳出循环
if msg == "bye":
service.sendall("over!")
break;
# 向客户端发送消息
info = input("请输入要发送给客户端的消息:")
info = info.encode("utf-8")
conn.sendall(info)
# 关闭该客户端的连接
conn.close()
3. 编程实现客户端
import socket
# 创建客户端套接字对象
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接服务器
client.connect(("192.168.10.115", 8888))
# 循环处理发送消息
while True:
# 接收服务器的消息
msg = client.recv(1024)
msg = msg.decode("utf-8")
print("服务器:" + msg)
# 如果一旦接收到over!字符串,跳出循环
if msg=="over!":
print("程序退出")
break;
# 给服务器发送消息
info = input("请输入要发送的消息:")
info = info.encode("utf-8")
client.sendall(info)
#关闭客户端套接字对象
client.close()
4. 测试程序
首先运行服务端程序
运行客户端程序
开始互相发送消息
服务端
客户端
整体效果如上所述,对于TCP网络编程的部分内容都有涉及,大家在独立完成的基础上,可以思考一个问题:怎么退出对话?!
以上就是小编所分享的内容,喜欢的话可以加个关注,希望能够帮助到大家,仅供参考
最后针对Android程序员,除了以上内容,我自己整理了一套最新的python系统资料可以免费送给大家,从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。需要这些资料的朋友,可以进python学习交流群:851211580免费领取 。
希望能帮助到大家,也节省大家在网上搜索资料的时间来学习,也可以分享动态给身边好友一起学习!后续还会更新技术干货,谢谢您的支持!




3202

被折叠的 条评论
为什么被折叠?



