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

    运行结果:

  • 相关阅读:
    软件工程概论
    软件工程概论
    JAVA
    JAVA
    C#字符补位
    C#绘图双缓冲
    C#中IP地址转换为数值的方法
    C#并行编程-并发集合
    C#委托
    C#事件(event)解析
  • 原文地址:https://www.cnblogs.com/sun-10387834/p/10337725.html
Copyright © 2011-2022 走看看