Python学习的第二十九天(网络编程tcp的客户端和服务端 和(时间)time模块)

*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
    

猜你喜欢

转载自blog.csdn.net/abcdhulei/article/details/89404146