"""
循环为多个客户端服务
"""
import socket
def main():
# 1.创建套接字
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2.绑定本地信息
tcp_server_socket.bind(("", 7788))
# 3.让默认的套接字由主动变为被动 listen
tcp_server_socket.listen(128)
while True:
# 4.等待客户端的连接 accept 有一个返回值是一个元组
client_socket, client_addr = tcp_server_socket.accept()
print("请连接.....")
print("收到的客户端socket:%s" % client_socket)
print(client_addr)
print("收到的客户端地址:%s" % str(client_addr))
while True:
# 接收客户端发过来的数据 循环为这个客户端服务多次
recv_data = client_socket.recv(1024)
print("收到客户端发送的消息:%s" % recv_data.decode("gbk"))
result = len(recv_data)
# 如果客户端发送的数据不为空那么久是需要服务
if result > 0:
# 发送数据
client_socket.send("收到".encode("gbk"))
# 如果客户端发送的是空则是关闭
else:
break
# 如果客户端发送的数据不为空那么久是需要服务
if recv_data:
# 发送数据
client_socket.send("收到".encode("gbk"))
# 如果客户端发送的是空则是关闭
else:
break
# 关闭套接字 一位置不会再为这个客户点服务
client_socket.close()
# 如果关闭监听套接字,那么会导致不能再次等待新的客户端到来
tcp_server_socket.close()
if __name__ == __main__:
main()