python网络编程实战_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. 测试程序

首先运行服务端程序

AAffA0nNPuCLAAAAAElFTkSuQmCC

运行客户端程序

AAffA0nNPuCLAAAAAElFTkSuQmCC

开始互相发送消息

服务端

AAffA0nNPuCLAAAAAElFTkSuQmCC

客户端

AAffA0nNPuCLAAAAAElFTkSuQmCC

整体效果如上所述,对于TCP网络编程的部分内容都有涉及,大家在独立完成的基础上,可以思考一个问题:怎么退出对话?!

AAffA0nNPuCLAAAAAElFTkSuQmCC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值