基于udp的套接字编程
一,简单明了了解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的套接字编程的更多相关文章
- 基于UDP的套接字、粘包问题
一.基于UDP的套接字 UDP服务端 ss = socket() #创建一个服务器的套接字 ss.bind() #绑定服务器套接字 inf_loop: #服务器无限循环 cs = ss.recvfro ...
- python笔记8 socket(TCP) subprocess模块 粘包现象 struct模块 基于UDP的套接字协议
socket 基于tcp协议socket 服务端 import socket phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 买 ...
- Day9 基于TCP的套接字和基于UDP的套接字
服务端: ss=socket() #创建服务器套接字 ss.bind() #把地址绑定到套接字 ss.listen() #监听套接字, inf_loop: #服务器无限循环 cs=ss.accept( ...
- tcp流式套接字和udp数据报套接字编程区别
1. 流式套接字采用字节流方式进行传输,而数据报套接字 使用数据报形式传输数据2. tcp套接字会产生粘包,udp有消息边界,不会形成粘包.3. tcp编程可以保证消息的完整性,udp则不能保证4. ...
- 基于udp的套接字
1 ss = socket() #创建一个服务器的套接字 2 ss.bind() #绑定服务器套接字 3 inf_loop: #服务器无限循环 4 cs = ss.recvfrom()/ss.send ...
- 基于tcp的套接字编程
一,基础版服务器端客户端(一收一发,只有一个客户端链接) 服务器端: #Author : Kelvin #Date : 2019/1/28 22:10 from socket import * ser ...
- socket原理-基于UDP的套接字-基于TCP实现远程命令-粘包
- 4-socket套接字编程
socket套接字编程 目标:根据socket模块提供的接口函数,进行组合使用完成基于tcp或者udp的网络编程. 套接字:完成上述目标的一种编程手段,编程方案. 套接字分类: 流式套接字(sock_ ...
- 基本套接字编程(1) -- tcp篇
1. Socket简介 Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换. 几个定义: (1)IP地址:即依照TCP/IP协议分配给本地主机 ...
随机推荐
- 代码审计之SQL注入:BlueCMSv1.6 sp1
Preface 这是一篇纪录关于BlueCMSv1.6 sp1两个SQL注入的审计过程,原文来自代码审计之SQL注入:BlueCMSv1.6 sp1 ,主要纪录一下个人在参考博文复现这两个漏洞经过. ...
- AUTOSAR - 标准文档下载
官网 https://www.autosar.org/ 文档分类 按功能分 按类型分 CLASSIC PLATFORM The AUTOSAR Classic Platform architectur ...
- 连接到放置本地yum源服务器之前的注意事项
1.确认系统防火墙关闭 2.启动httpd服务 service httpd start 如果提示没有httpd服务: 安装httpd服务 yum install -y httpd 作者:Daley Z ...
- Python学习 Part3:数据结构
Python学习 Part3:数据结构 1. 深入列表: 所有的列表对象方法 list.append(x): 在列表的末尾添加一个元素 list.extend(L): 在列表的末尾添加一个指定列表的所 ...
- [CVPR2017] Weakly Supervised Cascaded Convolutional Networks论文笔记
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 14.0px "Helvetica Neue"; color: #042eee } p. ...
- bugku misc writeup(一个普通的压缩包)
这个题做了好几个小时,因为没有writeup,一点一点摸索,做题思路写出来给大家交流 首先这是一个zip.rar压缩包,下载下来第一步就是拖进hexeditor中观察,检查下文件的头尾结构是否有问题, ...
- PAT1037:Magic Coupon
1037. Magic Coupon (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The magi ...
- hessian在ssh项目中的配置
一. 在服务端发布一个web项目 1.创建一个动态的web项目,并导入hessian的jar包 2. 在服务端的crm项目中创建接口 package cn.rodge.crm.service;impo ...
- Hibernate验证器
第 4 章 Hibernate验证器 http://hibernate.org/validator/documentation/getting-started/#applying-constrain ...
- Containerd 简介
我们可以把 docker 抽象为下图所示的结构(此图来自互联网): 从图中可以看出,docker 对容器的管理和操作基本都是通过 containerd 完成的. 那么,containerd 是什么呢? ...