zoukankan      html  css  js  c++  java
  • day_6.6 py

    Tftp 下载器演示 2018-6-6 14:11:09

    #!/usr/bin/env python
    #!--*--coding:utf-8 --*--
    #!@Time    :2018/6/6 11:55
    #!@Author   TrueNewBee
    '''
    Tftp 下载器演示 04
    
    关于架构
    1. c/s 架构   服务端和客户端
    2. b/s  用浏览器打开的
    
    2018-6-6 17:24:29
    由于demo的视频黑屏无法看,跳过这节
    进行下一节 web服务器
    '''
    #Tftp 的test
    from socket import *
    import struct
    #发送一个数据
    #!H 是占用两个字符  8s是对应 test.jpg 8个字符,H是占空的,这是对应的规定
    #上传数据
    sendData = struct.pack("!H8sb5sb",1,"test.jpg",0,"octet",0)
    
    #创建一个套接字
    #Tftp 默认端口是69
    # udpSocket = socket(AF_INET,SOCK_DGRAM)
    # udpSocket.send(sendData,("192.168.119.210",69))
    # udpSocket.close() #套接字使用完就应该关闭
    #下载数据
    result  = struct.unpack("!HH",recvData[:4])
    print(result)
    
    udp广播
    #!/usr/bin/env python
    #!--*--coding:utf-8 --*--
    #!@Time    :2018/6/6 18:26
    #!@Author   TrueNewBee
    '''
    广播只能在udp中使用!!
    
    一般情况下局域网收到数据,用广播
    '''
    import socket ,sys
    
    dest = ("<broadcast>",7788)
    
    #创建udp套接字
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    #对这个需要发送广播数据的套接字进行修改设置,否则不能发送广播数据
    #如果s套接字需要发送广播数据,那么久需要这句话
    s.setsockopt(socket.SOL_SOCKET,socket.SO_BROADCAST,1)
    
    #一广播的形式发送数据到本网络的所有电脑中去
    # 192.168.1.0------->>网络号
    # 192.168.1.255------>>广播地址
    s.sendto("hi",dest)
    
    print("等待对方回复(按ctrl+c退出)")
    
    while True:
        (buf,address) = s.recvfrom(2048)
        print("Received from %s:%s"%(address,buf))
  • 相关阅读:
    [bzoj1113][Poi2008]海报PLA
    [CF1111D]Destroy the Colony
    [CF1111E]Tree
    [CF1111C]Creative Snap
    [洛谷P5136]sequence
    [洛谷P5190][COCI 2010] PROGRAM
    [洛谷P5137]polynomial
    US Open 2016 Contest
    【hackerrank】Week of Code 26
    usaco中遇到的问题
  • 原文地址:https://www.cnblogs.com/zhen1996/p/9144858.html
Copyright © 2011-2022 走看看