zoukankan      html  css  js  c++  java
  • 浅说套接字socket做个小小的监控


    socket 的简介

    网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。

    Socket的英文原义是“孔”或“插座”。作为BSD UNIX的进程通信机制,取后一种意思。通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,可以用来实现不同虚拟机或不同计算机之间的通信。在Internet上的主机一般运行了多个服务软件,同时提供几种服务。每种服务都打开一个Socket,并绑定到一个端口上,不同的端口对应于不同的服务。Socket正如其英文原意那样,像一个多孔插座。一台主机犹如布满各种插座的房间,每个插座有一个编号,有的插座提供220伏交流电, 有的提供110伏交流电,有的则提供有线电视节目。 客户软件将插头插到不同编号的插座,就可以得到不同的服务

    工作的原理


    1223334

    脚本的工作的一些知识


    • socket模块的操作

    • datetime模块的操作

    • 文件操作

    • while 循环

    • if 判断

    • 列表操作

    服务器的代码:

    #!/usr/bin/python
    import  SocketServer
    import  datetime
    host_status={}
    f=open('client.txt')
    while 1:
        line=f.readline().split()
        if len(line)==0:break
        host_status[line[0]]=[]
    f.close()
    
    class  myMonitorHandler(SocketServer.BaseRequestHandler):
             def handle(self):
                recv_data=self.request.recv(1024)
                if self.client_address[0] in host_status.keys():
                       host_status[self.client_address[0]].append((datetime.datetime.now(),recv_data))
                       print "from %s: %s %s" %(self.client_address,datetime.datetime.now(),recv_data)
                else:
                       print  "sorry,ip %s is not in   the  monitor list" % self.client_adddress[0]
                for  t,m in  host_status.items():
                  print  t,m
    
    host,port='',1803 
    server=SocketServer.ThreadingTCPServer((host,port),myMonitorHandler)
    server.serve_forever()
                

    客户端的代码:

    import socket
    h='192.168.4.234'
    p=1803
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect((h,p))
    s.send('up')
    received_data=s.recv(1024)
    s.close()
    
    ~              

    执行后的结果服务器会一直监听客户端的状态

    1233444

  • 相关阅读:
    招聘、外包和求职;找人、找活和找工作的都来看看。
    这周我加星(6)
    走出行业暴利思维,开始为“软件”付钱!
    真相,道歉。
    这周我加星(8-11)
    独家:Havok 发布新的 AI 中间件
    一奖三年得,终获 CSDN MVB,与大家分享喜悦
    “解决”OpenCASCADE图形设备初始化问题
    如何在Debian上安装ATI官方驱动
    VC++/MFC学习笔记(六)
  • 原文地址:https://www.cnblogs.com/yubenliu/p/5535094.html
Copyright © 2011-2022 走看看