*tcp通信
客户端
-
创建tcp套接字
tcp_client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-
连接服务器
tcp_client.connect((str服务器ip, int端口))
-
客户端先发消息
tcp_client.send(bytes数据)
-
客户端收消息
tcp_client.recv(接收字节数)
-
关闭套接字
tcp_client.close()
服务端
创建tcp套接字
t = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
tcp套接字要绑定端口
t.bind(地址元组)
普通tcp套接字变身,tcp监听套接字
t.listen()
等待客户连接(无客户过来,会阻塞。有客户过来,会得一个元组(双向连接,客户端地址元组)
conn, addr = t.accept()
收消息(消息未到时,会阻塞)
bytes数据 = conn.recv(20)
发消息
conn.send(bytes数据)
time模块
三种表示时间的格式
-
时间戳
给计算机看的
-
格式化时间字符串
格式化时间,给人看的
-
结构化时间,时间元组
计算用
三种时间格式的转换
导入
import time
延时
time.sleep(秒数)
import time
while True:
print('我开始停顿了')
time.sleep(10)
print('我停了十秒钟')
break
print('跳出了循环')
当前时间戳
time.time()
记录从1970年1月1日到现在的秒数
时间元组
time.localtime()
得到的是一个时间元组
local,本地
取值方式1,按照元组的索引下标取值
序号 | 属性 | 值 |
---|---|---|
0 | tm_year | 2008 |
1 | tm_mon | 1 到 12 |
2 | tm_mday | 1 到 31 |
3 | tm_hour | 0 到 23 |
4 | tm_min | 0 到 59 |
5 | tm_sec | 0 到 61 (60或61 是闰秒) |
6 | tm_wday | 0到6 (0是周一) |
7 | tm_yday | 1 到 366(儒略历) |
8 | tm_isdst | -1, 0, 1, -1是决定是否为夏令时的旗帜 |
取值方式2,按照属性取值
时间元组.属性
格式化日期
time.strftime(格式化字符串, 时间元组)
str , 字符串
f,format, 格式化
time,时间
a = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(type(a), a)
如果打印当前时间可省掉时间元组
import time
a = time.strftime("%Y-%m-%d %H:%M:%S")
print(type(a), a)
结果
<class 'str'> 2019-04-16 23:15:38
python中时间日期格式化符号:
- %y 两位数的年份表示(00-99)
- %Y 四位数的年份表示(000-9999)
- %m 月份(01-12)
- %d 月内中的一天(0-31)
- %H 24小时制小时数(0-23)
- %I 12小时制小时数(01-12)
- %M 分钟数(00=59)
- %S 秒(00-59)
- %a 本地简化星期名称
- %A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称
- %% %号本身
时间转换
-
时间戳–》结构化时间
time.localtime(时间戳)
-
结构化时间–》时间戳
time.mktime(结构化时间)
import time
struct_time = time.localtime(1666000000)
print(struct_time)
time_stamp = time.mktime(struct_time)
print(time_stamp)
结果
time.struct_time(tm_year=2022, tm_mon=10, tm_mday=17, tm_hour=17, tm_min=46, tm_sec=40, tm_wday=0, tm_yday=290, tm_isdst=0)
1666000000.0
-
格式化时间–》结构化时间
import time ret = time.strptime("2019-04-16", "%Y-%m-%d") print(ret)
结果
time.struct_time(tm_year=2019, tm_mon=4, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=106, tm_isdst=-1)
-
结构化时间–》格式化时间
import time stime = time.localtime(166666666) res = time.strftime("%Y-%m-%d %H:%M:%S", stime) print(res)
结果
1975-04-14 08:17:46