美文网首页
UDP广播,向飞秋发消息,模拟QQ-2018-04-02

UDP广播,向飞秋发消息,模拟QQ-2018-04-02

作者: ZJXianG | 来源:发表于2018-05-23 08:49 被阅读0次

    UDP广播

    from socket import *

    udp_socket = socket(type=SOCK_DGRAM)
    udp_socket.bind(('',12345))

    这一行代码表示支持广播

    udp_socket.setsockopt(SOL_SOCKET,SO_BROADCAST,1)
    data = input('>')

    address=('192.168.13.127',5678)

    address=('<broadcast>',5678)
    udp_socket.sendto(data.encode('gbk'),address)
    udp_socket.close()
    print('哦了。。。')

    UDP向飞秋发消息

    '''

    写代码,往某个机器发送消息
    1、对方的IP 192.168.13.38
    2、对方监听的端口号 5678
    '''

    from socket import *

    创建UDP对象

    udp_socket = socket(type=SOCK_DGRAM)
    #客户端也可以绑定,系统就不会自动生成。否则对当前udp_socket对象系统会自动生成一个端口号
    # udp_socket.bind(('',12345))

    数据

    data = input('>')

    地址

    address=('192.168.13.59',2425)

    发送

    udp_socket.sendto(data.encode('gbk'),address)

    关闭

    udp_socket.close()

    print('哦了。。。')

    模拟QQ

    from threading import Thread
    from socket import *

    1. 收数据,然后打印

    def recvData():
    while True:
    recvInfo = udpSocket.recvfrom(1024)
    print(">>%s:%s" % (str(recvInfo[1]), recvInfo[0].decode('gbk')))

    2. 检测键盘,发数据

    def sendData():
    while True:
    date = input("<<")
    udpSocket.sendto(date.encode("gbk"), (destIp, destPort))

    udpSocket = None
    destIp = ""
    destPort = 0

    def main():
    global udpSocket
    global destIp
    global destPort

    destIp = input("对方的ip:")
    destPort = int(input("对方的port:"))
    
    udpSocket = socket(AF_INET, SOCK_DGRAM)
    udpSocket.bind(("", 12532))
    
    tr = Thread(target=recvData)
    ts = Thread(target=sendData)
    
    tr.start()
    ts.start()
    
    tr.join()
    ts.join()
    

    if name == "main":
    main()

    相关文章

      网友评论

          本文标题:UDP广播,向飞秋发消息,模拟QQ-2018-04-02

          本文链接:https://www.haomeiwen.com/subject/ujgxhftx.html