• 网络应用开发和爬虫


    一、UDP协议编程

       编写UDP通信程序,发送端发送一个字符串“Hello world!”。接收端在计算机的5000端口进行接收,并显示接收内容,如果收到字符串bye(忽略大小写)则结束监听。

    首先启动一个命令提示符环境并运行接收端程序,这时接收端程序处于阻塞状态,接下来再启动一个新的命令提示符环境并运行发送端程序,此时会看到接收端程序继续运行并显示接收到的内容以及发送端程序所在计算机IP地址和占用的端口号。

    当发送端发送字符串bye后,接收端程序结束,此后再次运行发送端程序时接收端没有任何反应,但发送端程序也并不报错。这正是UDP协议的特点,即“尽最大努力传输”,并不保证非常好的服务质量。

    import socket
    import sys
    s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 假设192.168.2.203是接收端机器的IP地址
    s.sendto(sys.argv[1].encode() , ("192.168.2.203" ,5000))
    s.close( ) 
    import socket
     #使用IPV4协议,使用UDP协议传输数据
    s=socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    #绑定端口和端口号,空字符串表示本机任何可用IP地址
    s.bind(('', 5000))
    while True:
        data, addr = s.recvfrom(1024)
        # 显示接收到的内容
        data = data.decode()
        print('received message:{0} from PORT {1[1]} on {1[0]}'.format(data, addr))
        if data.lower() == 'bye':
            break
    
    s.close( )

    运行效果截图:

    二、获取一个网页内容

    import requests
    def getHTMLText(_):
        try:
            r=requests.get(url,timeout=30)
            r.raise_for_status()
            r.encoding='utf-8'
            return r.text
        except:
            return ""
    url="http://www.baidu.com"
    print(getHTMLText(url))

    运行结果:

  • 相关阅读:
    ASM ClassReader failed to parse class file- probably due to a new Java class file version that isn't supported yet问题
    Git配置工作
    Git多人协作
    Git分支合并
    网络收藏夹
    莫道桑榆晚,为霞尚满天
    2021幼升小
    2020年07月28日10:36:36
    JAVA中如果用BigDecimal做除法
    mybatis
  • 原文地址:https://www.cnblogs.com/nicaihui/p/12862614.html
Copyright © 2020-2023  润新知