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))

 

posted @ 2018-06-06 14:14  我想喝杨枝甘露~  阅读(176)  评论(0编辑  收藏  举报