【发布时间】:2018-03-23 06:52:26
【问题描述】:
我编写了一个包含两个模块的应用程序。
代理:收集有关计算机资源的信息并发送给经理。
Manager : 监听来自客户端的数据并写入数据库。
我已经完成了Agent上的数据采集功能。我为每种信息编写函数。 Exp : OS() for Operating System information, DISK() for Disk used information ....
每个函数都返回一个包含信息的列表。我想将这些列表发送给经理。但是当向 Manager 发送数据时,我必须将数据类型更改为字符串。
我认为我应该将每个列表一一发送,以便我轻松将数据类型更改回列表。我打算在 Agent 和 Manager 上写一个 for 循环来发送/接收数据。
代理:
resource_info = [OS(), CPU(), DISK(), MEMORY(), NETWORK(), FIREWALL()]
try:
for x in resource_info:
s.sendall(str(x))
except socket.error, e:
print "Error sending data: %s" % e
sys.exit(1)
# Close Socket
s.close()
经理:
s.listen(10)
for x in range(0,4):
if x == 0 :
conn, addr = s.accept()
OS = conn.recv(100000)
if x == 1 :
conn, addr = s.accept()
DISK = conn.recv(100000)
if x == 2 :
conn, addr = s.accept()
MEMORY = conn.recv(100000)
....
OS = OS.split(",")
DISK = DISK.split(",")
....
但我认为这是一种愚蠢的做法。请给我一些关于如何将代理上的多列表发送给经理的建议。如果您有示例代码,那就太好了。 非常感谢, 广
【问题讨论】:
标签: python python-2.7 sockets