对一个真正的能够在互联网上去直接使用并传输数据的python程序来说 , 它是需要挂载在互联网上并且能够在客户端以及服务端开启网络通信来实现数据传输 。下面这篇文章会来给大家介绍一下 , python实现网络通信的方法 , 感兴趣的小伙伴就一起往下看看吧 。
【Python实现网络通信怎么做?Python如何根据TCP协议完成数据传输】
文章插图
一、服务端
网络通信指的就是网络之间的数据传输 , 而数据想要传输自然是需要开启客户端以及服务端之间的通信服务 。而服务端就是用来接收请求并对其处理 , 然后响应将数据返回的作用 , 服务端放在python程序的服务器上 。
那么服务端的创建需要使用到socket模块 , 这个模块能够构建出来一个使用TCP协议套接字端 。然后就要对请求进行分析并且解码之后处理数据 , 之后还要创建出来一个监听对象指定ip地址并且等待用户的连接 , 代码示例如下所示:
import socketimport threadingdef session(sock, addr): sock.send(b'Welcome!') while True: data = sock.recv(1024) time.sleep(1) if not data or data.decode('utf-8') == 'exit': break sock.send((data.decode('utf-8')).encode('utf-8'))sock.close()server=socket.socket(socket.AF_INET,socket.SOCK_STREAM)server.bind(('127.0.0.1',1234))server.listen(5)while True: sock, addr = s.accept() t = threading.Thread(target=session, args=(sock, addr)) t.start()二.客户端
客户端的话就是用来处理用户的操作并且执行访问服务端请求的python程序 , 它可以不和服务端的python代码放在一起 。那么客户端的代码编写就比较简单了 , 创建出一个TCP协议的socket连接对象 。
然后使用这个对象的connect()方法连接上服务端 , 再通过send()方法将数据发送到服务端就可以完成网络通信的数据传输了 , 代码示例如下:
import socketclient = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client.connect(('127.0.0.1', 1234))for data in [b'Rose', b'Think', b'Babala']: s.send(data)s.send(b'exit')s.close()需要注意的一点就是 , 在启动客户端程序的时候 , 服务端的python程序也必须启动并且在同一设备上 。否则的话服务端需要部署在云服务器上 , 不然是无法传输数据的 。
以上就是关于“Python实现网络通信怎么做?Python如何根据TCP协议完成数据传输”的全部内容了 , 希望对你有所帮助 。
推荐阅读
- Python文件路径怎么处理?Python如何获取文件路径信息
- Python查找文件怎么实现?Python如何自定义文件查找关键字
- Python中pandas库如何检查空值?Pandas库的DataFrame怎么去除空值
- Python怎么合并DataFrame?Pandas库的DataFrame对象如何合并
- Pandas删除表格空白行怎么做?Python中如何用pandas库去除空行
- Python脚本执行方式有哪些?Python脚本执行的方法
- Python的制表符是什么?什么是Python制表符?
- Python中的bat文件是什么?如何在Python中运行bat文件?
- 如何找出Python列表中出现次数最多的元素?找出Python列表中出现最频繁的元素方法
- 如何解决Python根目录中没有Scripts文件夹?Python没有Scripts文件夹的解决方法