zoukankan      html  css  js  c++  java
  • python通过建立长链接,获取动态ip,这种方式可以长时间保持连接

    服务端 server.py

    # 服务端
    import socket
     
    class UdpServer(object):
        def tcpServer(self):
            sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
            sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
            sock.bind(('0.0.0.0', 1060)) 
            
            while True:
                revcData, (remoteHost, remotePort) = sock.recvfrom(1024)
                print("[%s:%s] connect" % (remoteHost, remotePort)) 
                
                sendDataLen = sock.sendto("this is send  data from server".encode(), (remoteHost, remotePort))
                print("revcData: ", revcData)
                print("sendDataLen: ", sendDataLen)
                
            sock.close()
                
    if __name__ == "__main__":
        udpServer = UdpServer()
        udpServer.tcpServer()

    客户端:client.py

    # 客户端
    from socket import *
    import time
    
    # 设定目标地址
    dest = ('<broadcast>', 1060)  
    s = socket(AF_INET, SOCK_DGRAM)
    s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1)
    data = 'Is client,time of {}'.format(time.time())
    str = s.sendto(data.encode('utf-8'), dest)  # 发送广播
    s.settimeout(30)  # 设置等待超时时间为30s
    msg, addr = s.recvfrom(1024)  # recvfrom为阻塞方法
    print('接收回复==服务端地址:{},响应内容:{}'.format(addr, msg.decode('utf-8')))
    s.close()

     使用方法如下,在使用过程中,先启动服务端程序,然后如果客户端那里需要此ip,可以当即运行客户端代码,进行获取

  • 相关阅读:
    源码解析.Net中IConfiguration配置的实现
    python小工具
    hue搭建以及报错记录
    jenkins启动指定数据目录
    基于三维地图的智慧园区可视化解决方案
    工业4.0的下一个十年
    项目管理知识体系介绍
    人工智能发展的新方向
    速成财务产品经理
    标准化体系:运营—训练—督导
  • 原文地址:https://www.cnblogs.com/lxz123/p/14167712.html
Copyright © 2011-2022 走看看