我与python约个会:30.2. 企业级开发进阶2.2:TCP实战
2017-05-27 17:57
162 查看
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网络编程的部分内容都有涉及,大家在独立完成的基础上,可以思考一个问题:怎么退出对话?!
相关文章推荐
- 我与python约个会:30.1. 企业级开发进阶2.1:TCP编程
- redis进阶6-实战python
- python爬虫框架scrapy实战之爬取京东商城进阶篇
- python服务器客户端实战tcp模式
- 2018年大神带你用Python零基础进阶课程入门爬虫flask实战
- Python进阶之UDP和TCP通信协议实例
- 我与python约个会:29.企业级开发进阶1:文件输入输出流[IO操作]
- 我与python约个会:31.企业级开发进阶3.1:发送电子邮件
- 我与python约个会:30.4. 企业级开发进阶2.4:服务端快捷开发
- 学习Python就业有哪些方向?附加视频教程(python3从入门到进阶(面向对象),实战(爬虫,飞机游戏,GUI)视频教程)
- Python进阶(1)_Socket网络编程(基于tcp的socket)
- 第二章:Python速成 2.2 进阶内容
- 我与python约个会:30.3. 企业级开发进阶2.3:UDP编程
- 我与python约个会:32.企业级开发进阶4:正则表达式
- Python进阶---python strip() split()函数实战(转)
- 我与python约个会:33.企业级开发进阶6:数据库操作
- Python进阶---python strip() split()函数实战
- 我与python约个会:30.企业级开发进阶2:网络编程
- 【 Python进阶】python strip() split()函数实战
- 我与python约个会:31.2企业级开发进阶3.2:接收电子邮件