基于TCP的套接字:通信循环

# 服务端必须满足至少三点:
# 1. 绑定一个固定的ip和port
# 2. 一直对外提供服务,稳定运行
# 3. 能够支持并发

##总结:
###现在这个服务端与客户端的架构没有太大的问题了,能实现基本的通信功能,服务端将接收到的来自客户端的数据,分析,处理
##并且返回该数据的大写,
##但是有两个问题就是,1,不能实现并发,2.一旦客户端强制中断了,服务端也会崩了


###服务端程序


from socket import *

server = socket(AF_INET, SOCK_STREAM)
server.bind(('127.0.0.1', 8080))
server.listen(5)

conn, client_addr = server.accept()

# 通信循环
while True:
data = conn.recv(1024)
print('接收到的数据有:',data.decode('utf-8'))
conn.send(data.upper())

if data == b'q':
conn.send(b'None')

conn.close()
server.close()


##客户端程序

from socket import *

client = socket(AF_INET, SOCK_STREAM)
client.connect(('127.0.0.1', 8080))

# 通信循环
while True:
msg = input('>>: ').strip()
if len(msg) == 0:
continue
client.send(msg.encode('utf-8')) ##发送
data = client.recv(1024) ##接收
print(data.decode('utf-8'))
if data == b'None':
break


client.close()





原文地址:https://www.cnblogs.com/1832921tongjieducn/p/11352476.html