設(shè)置套接字為非阻塞的方式:tcp_server_socket.setblocking(Flase)
也要把new_socket設(shè)置為非阻塞方式:new_socket.setblocking(Flase)
accept()是判斷是否有新客戶端到來戒努,recv是判斷是否有新數(shù)據(jù)到來
單進(jìn)程單線程不能同一時刻為別人服務(wù),一定是并發(fā)不是并行侣灶,因為要是并行的話在列表里面的客戶端時要同時為別人服務(wù)的
先進(jìn)入while:True循環(huán)派近,然后判斷是否有新客戶到來斋日,要是沒有就不會走else其中的列表是空的所以就不會進(jìn)入for循環(huán);當(dāng)有新的客戶端連接時就會走else其中列表就不為空就會走for循環(huán),就會調(diào)用已有的連接rece()來進(jìn)行數(shù)據(jù)的獲取堪滨,其中要是數(shù)據(jù)沒有來就會進(jìn)行下一輪循環(huán),當(dāng)有新的數(shù)據(jù)獲取會產(chǎn)生兩種狀況:(1)對方已發(fā)送過來數(shù)據(jù)(2)對方調(diào)用close()導(dǎo)致了recv()返回