CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
jackfrued

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

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