本文实例讲述了Python基本socket通信控制操作。分享给大家供大家参考,具体如下:
python — 基本socket通信控制(控制在celie.txt文件中主机IP地址可以发送信息,并返回对应的客户端IP、时间戳、发送的信息)
客户端代码
root@72129clent:~/python/snmp# ls
snmpclenit.py tab.py
root@72129clent:~/python/snmp# cat snmpclenit.py
#!/usr/bin/python
# --*-- coding:utf-8 --*--
import socket
host,port = '192.168.72.130',18000
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#调用IPv4协议
s.connect((host,port))#连接主机与端口
s.send("up")#客户端给服务器端发送数据“up”
s.close()
root@72129clent:~/python/snmp#
服务器短信代码:
root@kali:~/python/snmp# ls
celie.txt snmpserver.py tab.py tab.pyc
root@kali:~/python/snmp# cat celie.txt
192.168.72.129 xuweibo
root@kali:~/python/snmp#
root@kali:~/python/snmp# cat snmpserver.py
#!/usr/bin/python
# --*-- coding:utf-8 --*--
import datetime#导入时间戳
import SocketServer
#读取目录下的celie.txt文件
host_status = {}#新建字典,使用IP地址作为KEY值。作用是来判断每个客户端IP多久与服务器通信一次的
f = open('celie.txt')#调用策略文档,在里面的ip地址就可以通过,并发送信息
while True:
line = f.readline().split()
if len(line) == 0:break
print line[0]#打印第一个IP地址信息
host_status[line[0]] = []#给字典第一个设置为空,这样后面只要直接追加值就ok了
f.close()
class myMonitorHandler(SocketServer.BaseRequestHandler):
'''This is the Monitor server'''
def handle(self):
recv_data = self.request.recv(1024)#接收客户端数据
if self.client_address