zoukankan      html  css  js  c++  java
  • 基于udp的套接字编程

    一,简单明了了解udp套接字编程

    客户端:

     1 #Author : Kelvin
     2 #Date : 2019/1/30 11:07
     3 from socket import *
     4 ip_conf=("127.0.0.1",8888)
     5 buffer_content=1024
     6 udp_client=socket(AF_INET,SOCK_DGRAM) #数据报
     7 while True:
     8     udp_client.sendto(input("33[1;32;0m回复:33[0m").encode("utf8"),ip_conf)
     9     data,addr=udp_client.recvfrom(buffer_content)
    10     print("33[1;36;0m服务器:33[0m%s"%data.decode("utf8"))

    服务器端:

     1 #Author : Kelvin
     2 #Date : 2019/1/30 11:07
     3 from socket import *
     4 ip_conf=("127.0.0.1",8888)
     5 buffer_content=1024
     6 udp_server=socket(AF_INET,SOCK_DGRAM) #数据报
     7 udp_server.bind(ip_conf)
     8 while True:
     9     data,addr=udp_server.recvfrom(buffer_content)
    10     print("33[1;36;0m客户端:33[0m%s"%data.decode("utf8"))
    11     udp_server.sendto(input("33[1;32;0m回复:33[0m").encode("utf8"),addr)

    udp套接字优点在于 可以同时接收多个客户端请求并通信,而tcp同一时间只能与一个客户端通信(纯净tcp),只有结束当前通信后才能与其他客户端通信。

     

    二,udp示例(时间服务器)

    服务器端:

     1 #Author : Kelvin
     2 #Date : 2019/1/30 11:07
     3 from socket import *
     4 import time
     5 ip_conf=("127.0.0.1",8888)
     6 buffer_content=1024
     7 udp_server=socket(AF_INET,SOCK_DGRAM) #数据报
     8 udp_server.bind(ip_conf)
     9 while True:
    10     data,addr=udp_server.recvfrom(buffer_content)
    11     data=data.decode("utf8")
    12     if not data:
    13         form="%Y-%m-%d %X"
    14     else:
    15         form=data
    16     now_time=time.strftime(form)
    17     udp_server.sendto(now_time.encode("utf8"),addr)

    客户端:

     1 # Author : Kelvin
     2 # Date : 2019/1/30 11:07
     3 from socket import *
     4 
     5 ip_conf = ("127.0.0.1", 8888)
     6 buffer_content = 1024
     7 udp_client = socket(AF_INET, SOCK_DGRAM)  # 数据报
     8 print("""
     9 1:直接回车获取默认时间格式
    10 2:使用%Y %m %d %X 任意排序组合
    11 3:使用%Y %m %d %X 其中的任意个
    12 """)
    13 while True:
    14     udp_client.sendto(input("33[1;32;0m获取时间命令:33[0m").encode("utf8"), ip_conf)
    15     data, addr = udp_client.recvfrom(buffer_content)
    16     print("33[1;36;0m服务器时间:33[0m%s" % data.decode("utf8"))

    运行结果:

  • 相关阅读:
    LuoguP1016 旅行家的预算 (贪心)
    LuoguP2254 [NOI2005]瑰丽华尔兹 (单调队列优化DP)(用记忆化过了。。。)
    LuoguP2876 [USACO07JAN]解决问题Problem Solving (区间DP)(未完成)
    Luogu3275 [SCOI2011]糖果 (差分约束)
    Luogu1993 小K的农场 (差分约束)
    Luogu4427 [BJOI2018]求和 (树上差分)
    LuoguP1516 青蛙的约会 (Exgcd)
    POJ3903Stock Exchange (LIS)
    LuoguP1020 导弹拦截 (LIS)
    线性筛
  • 原文地址:https://www.cnblogs.com/sun-10387834/p/10337725.html
Copyright © 2011-2022 走看看