python网络通信问题:
1.服务器/客户端的概念:
服务器:为一个或者多个客户端(用户)提供所需“服务"的一系列硬件或者软件。工作流程可以简单概括为:等待请求、响应并提供服务、等待下一个请求。
客户端:因特定请求而联系服务器,接收服务并处理相关事务的一方。客户端可以持续向服务器发送请求,也可以在结束事务请求后不再发出请求。
2.通信端点与套接字(socket):
在服务器相应客户端的请求之前,双方需要进行一系列的准备工作。首先需要创建一个通信端点,服务器通过该通信端点监听客户端的请求。
在网络通信中,我们常用的一种通信端点为套接字(socket)。
3.套接字的分类
基于文件的套接字:AF_UNIX
面向网络的套接字:AF_INET,在所有的地址家族之中,目前 AF_INET 是使用得最广泛的。
4.套接字地址:主机-端口对
在socket通信中,我们通过主机-端口对找到通信的对象,有效的端口号范围是0~65535(小于1024的端口号预留给了系统),一般使用3306
- TCP/UDP协议:
3.1 TCP
实现的主要协议是传输控制协议(TCP)。创建TCP套接字时,必须使用SOCK_STREAM作为套接字类型。
3.2 UDP
实现的主要协议是用户数据报协议(UDP)。创建UDP套接字,必须使用SOCK_DGRAM作为套接字类型。
4.创建套接字:
使用socket.socket()函数:
tcpSock = socket(AF_INET, SOCK_STREAM)
udpSock = socket(AF_INET, SOCK_DGRAM)
未完待续