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)