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,可以当即运行客户端代码,进行获取

  • 相关阅读:
    Ubuntu14.04LTS系统QQ的安装:pidgin-lwqq
    Ubuntu14.04LTS系统输入法的安装
    Linux系统安装及初始化(ubuntu14.04)
    创建RAID并永久挂载RAID
    磁盘管理和磁盘配额
    用户账号组账号概述
    安装及管理程序
    目录和文件管理
    Vi编辑器的工作模式
    Linux命令及使用方法
  • 原文地址:https://www.cnblogs.com/lxz123/p/14167712.html
Copyright © 2011-2022 走看看