单进程-单线程-非阻塞

import socket

import time

tcp_server_socket= socket.socket(socket.AF_INET,socket.SOCK_STREAM)

tcp_server_socket.bind(("",5051))

tcp_server_socket.listen(128)

tcp_server_socket.setblocking(False)#设置套接字为非阻塞的方式

client_soket_list= list()

while True:

    # time.sleep(0.5)

    try:

        new_socket, new_addr= tcp_server_socket.accept()

except Exception as ret:

        print("---没有新的客户端到来---")

else:

        print("---只要没有产生异常,那么也就意味着来了一个新的客户端---")

new_socket.setblocking(False)#设置套接字为非阻塞的方式

        client_soket_list.append(new_socket)

for client_soketin client_soket_list:

        try:

            ret_data= client_socket.recv(1024).decode("utf-8")#接收

        except Exception as ret:

            print(ret)

print("---这个客户端没有发送过来数据---")

else:

            print("---没有异常---")

print(recv_data)

if ret_data:

                #对方发送过来数据

                print("---客户端发送过来了数据---")

else:

                #对方调用close导致了recv返回

                client_soket_list.remove(client_soket)

client_soket.close()

print("---客户端已经关闭---")

new_socket.send()#发送

你可能感兴趣的:(单进程-单线程-非阻塞)