zoukankan      html  css  js  c++  java
  • Python--网络编程-----基于UDP协议的套接字

    服务端:

     1 from socket import *
     2 
     3 server = socket(AF_INET, SOCK_DGRAM)
     4 server.bind(('127.0.0.1', 8080))
     5 
     6 while True:
     7     data, client_addr = server.recvfrom(1024)
     8     print(data, client_addr)
     9 
    10     server.sendto(data.upper(), client_addr)
    11 
    12 server.close()

    客户端:

     1 from socket import *
     2 
     3 client = socket(AF_INET, SOCK_DGRAM)
     4 
     5 while True:
     6     msg = input(">>:").strip()
     7     client.sendto(msg.encode('utf-8'), ('127.0.0.1', 8080))
     8 
     9     data, server_addr = client.recvfrom(1024)
    10     print(data, server_addr)
    11 
    12 client.close()

    先启动服务端,再启动客户端,在客户端输入小写字母abc,

    客户端运行结果为:

    1 >>:abc
    2 b'ABC' ('127.0.0.1', 8080)
    3 >>:

    服务端运行结果为:

    1 b'abc' ('127.0.0.1', 55255)

    这就实现了基于udp协议的简单套接字程序

    基于udp协议的套接字能够发空:

    在客户端输入空,

    客户端运行结果为:

    1 >>:
    2 b'' ('127.0.0.1', 8080)
    3 >>:
    4 b'' ('127.0.0.1', 8080)
    5 >>:

    udp就算发送数据为空,但是udp是数据报协议,数据报中还包含有ip端口信息,所以说数据报不为空

  • 相关阅读:
    Redis(二)——常用数据类型的命令
    爬山
    [Usaco2003 Open]Lost Cows
    Noip2017 小凯的疑惑——提高组D1T1
    Noip2017 跳房子——普及组
    Noip2017 棋盘——普及组
    Noip2017 图书管理员——普及组
    Noip2017 成绩——普及组
    java 简单计算器
    java 自定义异常处理
  • 原文地址:https://www.cnblogs.com/xudachen/p/8856359.html
Copyright © 2011-2022 走看看