Socket套接字
前言
socket
起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。
socket就是该模式的一个实现,socket
即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)
- socket和file的区别
1. file模块是针对某个指定文件进行【打开】【读写】【关闭】
2. socket模块是针对 服务器端 和 客户端 Socket 进行【打开】【读写】【关闭】
下面我们通过几种不同方式来实现时间戳服务器端和客户端:TCP
、UDP
、SocketServer TCP
、Twisted Reactor TCP
TCP时间戳服务
TCP服务器端
TCP服务器端设计方式伪代码
1 | ss = socket() # 创建服务器套接字 |
创建TCP时间戳服务器
1 | #!/usr/bin/env python |
TCP客户端
客户端伪代码
1 | cs = socket() # 创建客户端套接字 |
创建TCP时间戳客户端
1 | #!/usr/bin/env python |
执行TCP服务器和客户端
- 服务器端:
1 | $ python tsTserv.py |
- 客户端
1 | $ python tsTclnt.py |
UDP时间戳服务器
UDP服务器端
TCP服务器端设计方式伪代码
1 | ss = socket() # 创建服务器套接字 |
创建UDP服务器
1 | #!/usr/bin/env python |
UDP客户端
UDP客户端端设计方式伪代码
1 | cs = socket() # 创建客户端套接字 |
创建UDP客户端
1 | #!/usr/bin/env python |
SocketServer时间戳
服务器端
1 | #!/usr/bin/env python |
客户端
1 | #!/usr/bin/env python |
Twisted Reactor TCP时间戳
服务器端
1 | #!/usr/bin/env python |
客户端
1 | #!/usr/bin/env python |
小结
我们用几种方式实现了一个时间戳服务器和客户端,下次我们将学习IO多路复用及python下的select
模块