import os
from socket import *
from threading import Thread
# 定义域名和端口号
Host = ""
Port = 65535
#创建缓冲区
Buffer_size = 1024
Address = (Host,Port)
#创建服务器的套接字
#第一个参数:IPv4
#第二个参数:代表基于TCP的协议
tcp_server_socket = socket(AF_INET,SOCK_STREAM)
#绑定域名和端口号
tcp_server_socket.bind(Address)
#监听连接
#括号中的数字:设置内核中队列的长度,高并发服务器中,该值应该加大
tcp_server_socket.listen(127)
print("服务器创建成功,等待客户端连接")
#将处理数据的部分,封装成一个用于多线程的函数
def task(tcp_client_socket):
while True:
# 接收缓冲区的字节长度
# decode()解码 bytes -》 str
# encode() -》 编码 str -》 bytes
data = tcp_client_socket.recv(Buffer_size).decode() # recv() -》 从接收缓冲区读取指定长度的数字
if len(data) == 0 or data =='quit':
break
print("data = ", data)
# 发送信息
tcp_client_socket.send(data.encode())
tcp_client_socket.close()
#定义一个循环目的:等待客户端的连接
while True:
#定义一个客户端的连接对象(端口号和域名)
tcp_client_socket,address = tcp_server_socket.accept()
print("连接服务器的客户端对象:",address)
#定义一个循环目的:开始接收数据
t = Thread(target = task,args = (tcp_client_socket,))
t.start()
tcp_server_socket.close()