python3 tcp通信
说到tcp通信,我很自然会想到服务端和客户端。python的tcp通信流程和Qt差不多。
先看看tcp服务端的步骤:
本想画个图简化一下,没想到看着更复杂了。tcp服务端主要步骤为:创建服务端socket -> 绑定 ->监听 ->等待连接。等到有连接进来就会创建一个socket与之通信。拿到这个socket 就可以自由发挥了。
接着再看看tcp客户端的使用步骤:
客户端的操作就更简单了,创建socket -> 连接到服务端。 如果连接成功就可以和服务端通信了,用完记得关闭socket。
测试
按照流程编写最简的程序
服务端代码:
使用socket函数创建socket,第一个参数为AF_INET,创建tcp socket第二个参数为SOCK_STREAM。
使用bind函数绑定,参数为(IP,端口)。
使用listen函数监听,参数是在连接被转接或拒绝之前,传入连接请求的最大数。
使用accept函数等待连接,程序运行到这里阻塞,直到有连接进来。连接成功获得clisock与对端进行通信,使用send发送数据。
客户端代码:
创建socket和服务端一样,使用connect连接到服务端,参数为(IP,端口)。连接成功就可以使用clisock与服务端通信。使用recv接收数据。
运行效果:
服务端接受连接打印出new connection,客户端收到了服务端的数据welcome to my server。