我与python约个会:30.2. 企业级开发进阶2.2:TCP实战
来源:互联网 发布:围棋软件免费下载 编辑:程序博客网 时间:2024/06/06 19:16
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网络编程的部分内容都有涉及,大家在独立完成的基础上,可以思考一个问题:怎么退出对话?!
阅读全文
0 0
- 我与python约个会:30.2. 企业级开发进阶2.2:TCP实战
- 我与python约个会:30.1. 企业级开发进阶2.1:TCP编程
- 我与python约个会:30.4. 企业级开发进阶2.4:服务端快捷开发
- 我与python约个会:29.企业级开发进阶1:文件输入输出流[IO操作]
- 我与python约个会:30.企业级开发进阶2:网络编程
- 我与python约个会:30.3. 企业级开发进阶2.3:UDP编程
- 我与python约个会:31.企业级开发进阶3.1:发送电子邮件
- 我与python约个会:31.2企业级开发进阶3.2:接收电子邮件
- 我与python约个会:32.企业级开发进阶4:正则表达式
- 我与python约个会:33.企业级开发进阶6:数据库操作
- 我与python约个会:20. 企业级开发基础1:自定义模块
- 我与python约个会:21. 企业级开发基础2:使用第三方模块
- 我与python约个会:22.企业级开发基础3:类和对象
- 我与python约个会:24. 企业级开发基础5:面向对象特征(封装)
- 我与python约个会:23. 企业级开发基础4:面向对象
- 我与python约个会:25. 企业级开发基础6:面向对象特征(继承)
- 我与python约个会:26. 企业级开发基础7:面向对象特征(多态)
- 我与python约个会:27. 企业级开发基础8:面向对象扩展
- setInterval() 方法
- 轻松自动化---selenium-webdriver(python) 系列教程
- OpenAL播放器使用
- 设计模式----代理模式(Proxy)
- cpp notes2
- 我与python约个会:30.2. 企业级开发进阶2.2:TCP实战
- linux后台永久执行jar程序
- Kotlin 1.1也适用于Android开发人员
- PAT A1078.Hashing
- java日期工具类DateUtil-续一
- 设计模式之模板模式
- 哈夫曼树简介及实现
- java 提交表单、文件防止脏数据
- SQL语句中limit的用法