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

    运行结果:

  • 相关阅读:
    Linux下sed,awk,grep,cut,find学习笔记
    Python文件处理(1)
    KMP详解
    Java引用详解
    解决安卓中页脚被输入法顶起的问题
    解决swfupload上传控件文件名中文乱码问题 三种方法 flash及最新版本11.8.800.168
    null id in entry (don't flush the Session after an exception occurs)
    HQL中的Like查询需要注意的地方
    spring mvc controller间跳转 重定向 传参
    node to traverse cannot be null!
  • 原文地址:https://www.cnblogs.com/sun-10387834/p/10337725.html
Copyright © 2011-2022 走看看