栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python强势来袭-0033~网络编程-TCP实战

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python强势来袭-0033~网络编程-TCP实战

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网络编程的部分内容都有涉及,大家在独立完成的基础上,可以思考一个问题:怎么退出对话?!


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/225642.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号