python socket心跳检测多少秒
答案:2 悬赏:0 手机版
解决时间 2021-04-03 17:07
- 提问者网友:轻浮
- 2021-04-03 07:52
python socket心跳检测多少秒
最佳答案
- 五星知识达人网友:夜余生
- 2021-04-03 08:44
socket通信原理
Server端建立一个socket,然后绑定到一个(IP,port)对里,然后开启监听,准备好接收来自客户端(另一方)的请求。其中和客户端通信的方法有send(), sendall(), accept(), recv()等。
Client端建立socket,进行对服务器的连接,(可选的设置阻塞(同异步)方式等),连接上服务器后,进行数据的交互,sendall(), recv()等。
**注意:!服务端和客户端(socket两端)都有数据的“收”,“发”方法。
json的处理:将数据转化为json格式(包装):json.dumps(data), 返回一个封装后的数据,然后发送给另一端,另一端再进行解析(data接收(recv())后,进行加载(json.loads(data))), 这样就可以按照字典的格式进行读取,data_loaded['ip']等
最后:连接关闭。socket的开启会占用带宽,必须记得关闭。
以下是“心跳”程序的服务端(监听心跳)代码:
#!/usr/bin/python
#encoding:utf-8
'''
server
'''
import socket, sys, json
from thread import *
BUF_SIZE = 4096
HOST = socket.gethostname()
PORT = 7878
try:
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, e:
print "Error creating socket: %s" %e
sys.exit()
try:
server.bind((HOST, PORT))
except socket.error:
print "Bind failed!"
sys.exit()
print "Socket bind complete"
server.listen(10)
print "Socket now listening"
def clientthread(coon):
coon.send("Welcome to the server!")
while True:
try:
data = coon.recv(BUF_SIZE)
data_loaded = json.loads(data)
print "ip: "+str(data_loaded['ip'])+" |status: "+data_loaded['status']+" |pid: "+str(data_loaded['pid'])
# coon.sendall("hello, I love you!") # set the client :setblock(0)is ok!
except socket.error:
print "One Client (IP: %s) Connected over!" % data_loaded['ip']
break
coon.close()
while True:
coon, addr = server.accept()
print "Connected with %s: %s " % (addr[0], str(addr[1]))
start_new_thread(clientthread, (coon,))
server.close()希望能帮到你!
Server端建立一个socket,然后绑定到一个(IP,port)对里,然后开启监听,准备好接收来自客户端(另一方)的请求。其中和客户端通信的方法有send(), sendall(), accept(), recv()等。
Client端建立socket,进行对服务器的连接,(可选的设置阻塞(同异步)方式等),连接上服务器后,进行数据的交互,sendall(), recv()等。
**注意:!服务端和客户端(socket两端)都有数据的“收”,“发”方法。
json的处理:将数据转化为json格式(包装):json.dumps(data), 返回一个封装后的数据,然后发送给另一端,另一端再进行解析(data接收(recv())后,进行加载(json.loads(data))), 这样就可以按照字典的格式进行读取,data_loaded['ip']等
最后:连接关闭。socket的开启会占用带宽,必须记得关闭。
以下是“心跳”程序的服务端(监听心跳)代码:
#!/usr/bin/python
#encoding:utf-8
'''
server
'''
import socket, sys, json
from thread import *
BUF_SIZE = 4096
HOST = socket.gethostname()
PORT = 7878
try:
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error, e:
print "Error creating socket: %s" %e
sys.exit()
try:
server.bind((HOST, PORT))
except socket.error:
print "Bind failed!"
sys.exit()
print "Socket bind complete"
server.listen(10)
print "Socket now listening"
def clientthread(coon):
coon.send("Welcome to the server!")
while True:
try:
data = coon.recv(BUF_SIZE)
data_loaded = json.loads(data)
print "ip: "+str(data_loaded['ip'])+" |status: "+data_loaded['status']+" |pid: "+str(data_loaded['pid'])
# coon.sendall("hello, I love you!") # set the client :setblock(0)is ok!
except socket.error:
print "One Client (IP: %s) Connected over!" % data_loaded['ip']
break
coon.close()
while True:
coon, addr = server.accept()
print "Connected with %s: %s " % (addr[0], str(addr[1]))
start_new_thread(clientthread, (coon,))
server.close()希望能帮到你!
全部回答
- 1楼网友:duile
- 2021-04-03 09:39
用正则表达式去除啊
你需要的东西头是什么?content?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯