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

客户端:

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

服务器端:

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

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

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

服务器端:

 #Author : Kelvin
#Date : 2019/1/30 11:07
from socket import *
import time
ip_conf=("127.0.0.1",8888)
buffer_content=1024
udp_server=socket(AF_INET,SOCK_DGRAM) #数据报
udp_server.bind(ip_conf)
while True:
data,addr=udp_server.recvfrom(buffer_content)
data=data.decode("utf8")
if not data:
form="%Y-%m-%d %X"
else:
form=data
now_time=time.strftime(form)
udp_server.sendto(now_time.encode("utf8"),addr)

客户端:

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

运行结果:

基于udp的套接字编程的更多相关文章

  1. 基于UDP的套接字、粘包问题

    一.基于UDP的套接字 UDP服务端 ss = socket() #创建一个服务器的套接字 ss.bind() #绑定服务器套接字 inf_loop: #服务器无限循环 cs = ss.recvfro ...

  2. python笔记8 socket(TCP) subprocess模块 粘包现象 struct模块 基于UDP的套接字协议

    socket 基于tcp协议socket 服务端 import socket phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 买 ...

  3. Day9 基于TCP的套接字和基于UDP的套接字

    服务端: ss=socket() #创建服务器套接字 ss.bind() #把地址绑定到套接字 ss.listen() #监听套接字, inf_loop: #服务器无限循环 cs=ss.accept( ...

  4. tcp流式套接字和udp数据报套接字编程区别

    1. 流式套接字采用字节流方式进行传输,而数据报套接字 使用数据报形式传输数据2. tcp套接字会产生粘包,udp有消息边界,不会形成粘包.3. tcp编程可以保证消息的完整性,udp则不能保证4. ...

  5. 基于udp的套接字

    1 ss = socket() #创建一个服务器的套接字 2 ss.bind() #绑定服务器套接字 3 inf_loop: #服务器无限循环 4 cs = ss.recvfrom()/ss.send ...

  6. 基于tcp的套接字编程

    一,基础版服务器端客户端(一收一发,只有一个客户端链接) 服务器端: #Author : Kelvin #Date : 2019/1/28 22:10 from socket import * ser ...

  7. socket原理-基于UDP的套接字-基于TCP实现远程命令-粘包

  8. 4-socket套接字编程

    socket套接字编程 目标:根据socket模块提供的接口函数,进行组合使用完成基于tcp或者udp的网络编程. 套接字:完成上述目标的一种编程手段,编程方案. 套接字分类: 流式套接字(sock_ ...

  9. 基本套接字编程(1) -- tcp篇

    1. Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机 ...

随机推荐

  1. C++ 延时等待(sleep/timer/wait)

    原文链接:http://blog.csdn.net/tangweide/article/details/7063747 (-)使用_sleep()函数 #include <iostream> ...

  2. Ocelot中文文档-Raft(实验功能不能用于生产环境)

    Ocelot最近整合了Rafty,这是我在去年一直研究的Raft的一个实现. 这个项目实验性非常强,所以在我认为它没问题之前,请不要在生产环境中使用Ocelot的这个功能. Raft是一种分布式一致性 ...

  3. 鼠标拖拽定位和DOM各种尺寸详解

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. UML语言中五大视图和九种图形纵览

    UML语言纵览 视图 UML语言中的视图大致分为如下5种: 1.用例视图.用例视图强调从系统的外部参与者(主要是用户)的角度看到的或需要的系统功能. 2.逻辑视图.逻辑视图从系统的静态结构和动态行为角 ...

  5. android sqlite android.database.CursorIndexOutOfBoundsException: Index 5 requested, with a size of 5

    Cursor c = db.query("user",null,null,null,null,null,null);//查询并获得游标 if(c.moveToFirst()){// ...

  6. CentOS 6 安装Hadoop集群

    hadoop2.6.4安装包(链接:https://pan.baidu.com/s/15qHpdoLBQHP4HdxOJzNcsg 密码:5hel) 1.准备Linux环境 1.0先将虚拟机的网络模式 ...

  7. Mysql中MyISAM引擎和InnoDB引擎的比较

    结论 如果不清楚自己应该用什么引擎,那么请选择InnoDB,Mysql5.5+的版本默认引擎都是InnoDB,早期的Mysql版本默认的引擎是MyISAM MyISAM 和 InnoDB的适用场景 M ...

  8. eclipse换了高版本的maven插件后报错:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project

    在给eclipse换了高版本的maven插件后,引入jar包报如下的错误:  org.apache.maven.archiver.MavenArchiver.getManifest(org.apach ...

  9. sql server 死锁排查

    记得以前客户在使用软件时,有偶发出现死锁问题,因为发生的时间不确定,不好做问题的重现,当时解决问题有点棘手了. 现总结下查看死锁的常用二种方式: 第一种是图形化监听: sqlserver --> ...

  10. ROC曲线的计算

    1.ROC曲线简介 在评价分类模型时,会用到ROC(receiver operating characteristic)曲线.ROC曲线可用来评价二元分类器( binary classifier)的优 ...