#本节我们使用TCP创建客户端和服务端实现一个服务端为一个客户端进行持续的数据传输(如要实现为多个客户端服务则需要用多线程实现);
需要使用的工具:PyCharm,网络调试工具(NetAssist)
一、导入socket模块,定义客户端函数;
Socket编程之TCP客户端和服务端数据传输
#1,创建TCP客户端套接字
2,创建与服务端的连接(此处使用本地连接)
3,发送/接收数据
因为TCP是面向连接,在发送数据前已经创建了连接connect()
所以此处我们使用send()和recv()两个方法;
4,关闭套接字
客户端向服务端发送数据(同样用下面工具来接收)
此处当客户端接收数据时会遇到阻塞,阻塞是等待服务端发送数据;

Socket编程之TCP客户端和服务端数据传输
#使用网络调试助手给客户端返回数据,注意返回的Ip 和port;

二、定义服务端函数;
Socket编程之TCP客户端和服务端数据传输
1.创建套接字;
2.绑定本地信息(ip,port);(固定的)
3.listen()使最先创建的套接字变为被动连接;
4.accpet等待客户端的连接;
5.对客户端接收发送数据;

#此处while True循环目的为了实现服务端为客户端进行多次的发送和接收的服务;
Socket编程之TCP客户端和服务端数据传输

#为客户端设置可服务Socket编程之TCP客户端和服务端数据传输
#accpet返回的是两个值,第一个值是客户端连接到服务端时,服务端本身会创建一个新的套接字;第二个是客户端的ip地址;
Socket编程之TCP客户端和服务端数据传输
#此处判断当客户端没有发送数据或者说断开连接,服务端此时会收到b’’,此时我们可以判断如果接受到数据则服务端会返回给客户端,否则退出关闭新创建的套接字和原套接字;
Socket编程之TCP客户端和服务端数据传输

相关文章: