python socket 编程之三:长连接、短连接以及心跳(转药师Aric的文章)
2017-10-25 09:17
666 查看
长连接:开启一个socket连接,收发完数据后,不立刻关闭连接,可以多次收发数据包。
短连接:开启一个socket连接,收发完数据后,立刻关闭连接。
心跳:长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态。
在python里,其实不用做那么复杂的事情,心跳检测在TCP协议层会自动维护,python只需要调用接口设置就可以了,直接上代码:
server端:
#coding=utf-8
__author__ = '药师Aric'
'''
server端
长连接,短连接,心跳
'''
import socket
BUF_SIZE = 1024
host = 'localhost'
port = 8083
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host, port))
server.listen(1) #接收的连接数
client, address = server.accept() #因为设置了接收连接数为1,所以不需要放在循环中接收
while True: #循环收发数据包,长连接
data = client.recv(BUF_SIZE)
print(data.decode()) #python3 要使用decode
# client.close() #连接不断开,长连接client端:
短连接:开启一个socket连接,收发完数据后,立刻关闭连接。
心跳:长连接在没有数据通信时,定时发送数据包(心跳),以维持连接状态。
在python里,其实不用做那么复杂的事情,心跳检测在TCP协议层会自动维护,python只需要调用接口设置就可以了,直接上代码:
server端:
#coding=utf-8
__author__ = '药师Aric'
'''
server端
长连接,短连接,心跳
'''
import socket
BUF_SIZE = 1024
host = 'localhost'
port = 8083
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((host, port))
server.listen(1) #接收的连接数
client, address = server.accept() #因为设置了接收连接数为1,所以不需要放在循环中接收
while True: #循环收发数据包,长连接
data = client.recv(BUF_SIZE)
print(data.decode()) #python3 要使用decode
# client.close() #连接不断开,长连接client端:
#coding=utf-8 __author__ = '药师Aric' ''' client端 长连接,短连接,心跳 ''' import socket import time host = 'localhost' port = 8083 client = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1) #在客户端开启心跳维护 client.connect((host, port)) while True: client.send('hello world\r\n'.encode()) print('send data') time.sleep(1) #如果想验证长时间没发数据,SOCKET连接会不会断开,则可以设置时间长一点
相关文章推荐
- Socket编程-长连接与短连接,心跳(keep-alive)
- Python socket编程之两种网络连接方式
- socket编程:客户端与服务器间的连接以及各函数的用法
- python 中网络编程连接以及报头
- 关于tcp协议断开连接以及在socket编程时候连接的一些理解
- Socket 长连接 短连接 心跳 JAVA SOCKET编程
- Socket 长连接 短连接 心跳 JAVA SOCKET编程
- 如何在socket编程的Tcp连接中实现心跳协议
- socket编程:客户端与服务器间的连接以及各函数的用法
- python第七天学习记录——面向对象高级以及socket编程
- 如何在socket编程的Tcp连接中实现心跳协议
- Socket 长连接,短连接以及心跳(keep-alive)概念
- python常用模块与socket编程
- Python socket编程学习
- Python 的 Socket 编程多线程教程
- 文成小盆友python-num9 socket编程
- python SocketServer 框架编程
- Python网络编程03----Python3.*中socketserver
- python 之socket 网络编程
- python网络编程:一、前言及socket初探