timeserver.py 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. from socket import socket, SOCK_STREAM, AF_INET
  2. from datetime import datetime
  3. def main():
  4. # 1.创建套接字对象并指定使用哪种传输服务
  5. # family=AF_INET - IPv4地址
  6. # family=AF_INET6 - IPv6地址
  7. # type=SOCK_STREAM - TCP套接字
  8. # type=SOCK_DGRAM - UDP套接字
  9. # type=SOCK_RAW - 原始套接字
  10. server = socket(family=AF_INET, type=SOCK_STREAM)
  11. # 2.绑定IP地址和端口(区分不同的服务)
  12. server.bind(('192.168.1.2', 6789))
  13. # 3.开启监听 - 监听客户端连接到服务器
  14. server.listen(512)
  15. print('服务器启动开始监听...')
  16. # 4.通过循环接收客户端的连接并作出相应的处理(提供服务)
  17. while True:
  18. # accept方法是一个阻塞方法如果没有客户端连接到服务器
  19. # 这个方法就会阻塞代码不会向下执行
  20. # accept方法返回元组其中的第一个元素是客户端对象
  21. # 第二个元素是客户端的地址(由IP和端口两部分构成)
  22. client, addr = server.accept()
  23. print(str(addr) + '连接到了服务器.')
  24. # 5.发送数据
  25. client.send(str(datetime.now()).encode('utf-8'))
  26. # 6.断开连接
  27. client.close()
  28. if __name__ == '__main__':
  29. main()