import socketserver
class Myserver(socketserver.BaseRequestHandler):
def handle(self):
self.data = self.request.recv(1024).strip()
print("{} wrote:".format(self.client_address[0]))
print(self.data)
self.request.sendall(self.data.upper())
if __name__ == "__main__":
HOST, PORT = "127.0.0.1", 9999
# 設置allow_reuse_address容許服務器重用地址
socketserver.TCPServer.allow_reuse_address = True
# 建立一個server, 將服務地址綁定到127.0.0.1:9999
#server = socketserver.TCPServer((HOST, PORT),Myserver)
server = socketserver.ThreadingTCPServer((HOST, PORT),Myserver)
# 讓server永遠運行下去,除非強制中止程序
server.serve_forever()
tcp_server.py
打印進度條
1、
import sys
import time
for i in range(50):
sys.stdout.write('>')
sys.stdout.flush()
time.sleep(0.2)
2、
#總共接收到的大小和總文件大小的比值:
#all_size_len表示當前總共接受的多長的數據,是累計的
#file_size表示文件的總大小
per_cent = round(all_size_len/file_size,2) #將比值作成兩位數的小數
#經過\r來實現同一行打印,每次打印都回到行首打印
print('\r'+ '%s%%'%(str(int(per_cent*100))) + '*'*(int(per_cent*100)),end='') #因爲float類型的數據無法經過%s來進行字符串格式化,因此我在這裏經過int來轉換了一下,並用str轉換了一下,後面再拼接上*,這個*的數量根據如今計算出來的比值來肯定,就可以出來%3***這樣的效果。自行使用上面的sys.stdout來實現一下這個直接print的效果。
打印進度條
import timefor i in range(20): n=">"*i print("\r%s" % n,end="") #\r的含義是從這個開始打印前面的所有抹掉,end="" 是取消掉print的自動換行 time.sleep(0.5)