一,简单明了了解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. ubuntu 18.04安装docker以及docker内配置neo4j

    如题 切换到root用户下 apt install docker.io 等啊等,很快,就好了.. 如图 即可使用 如果出现Cannot connect to the Docker daemon at ...

  2. JavaScript中对数组和数组API的认识

    JavaScript中对数组和数组API的认识 一.数组概念: 数组是JavaScript中的一类特殊的对象,用一对中括号“[]”表示,用来在单个的变量中存储多个值.在数组中,每个值都有一个对应的不重 ...

  3. POST与PUT

    POST和PUT都是HTTP中客户端向服务器发送请求的方法 POST : 向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件).数据被包含在请求本文中.这个请求可能会创建新的 资源或修改 ...

  4. FastDfs上传图片

    1.1. 上传步骤 1.加载配置文件,配置文件中的内容就是tracker服务的地址. 配置文件内容:tracker_server=192.168.25.133:22122 2.创建一个TrackerC ...

  5. linux下svn(subversion)服务端添加工程及配置权限

    linux下svn(subversion)服务端添加工程及配置权限 转载请注明源地址:http://www.cnblogs.com/funnyzpc/p/9010507.html 此篇我只是将所做过的 ...

  6. TensorFlow-谷歌深度学习库 命令行参数

    程序的入口: tf.app.run tf.app.run( main=None, argv=None ) 运行程序,可以提供'main'函数以及函数参数列表.处理flag解析然后执行main函数. 什 ...

  7. R画网络图

    R  画网络图 目的:用R做生信分析,画基因样本的网络图,从中观察样本的致病性情况. 一.所用到的包 library(tidyr) library(ggplot2) library(reshape2) ...

  8. Unity文档阅读 第三章 依赖注入与Unity

    Introduction 简介In previous chapters, you saw some of the reasons to use dependency injection and lea ...

  9. 2017年Kali Linux更新源

    终端输入: leafpad /etc/apt/sources.list 打开更新源配置文件,将下面的更新源复制到原内容的前面: #163网易 Kali源 deb http://mirrors.163. ...

  10. bind在onlick中的作用!

    1:onClick={this.toRenderRight.bind(this,item.get('id'))}; 2:onClick={this.toRenderRight.(item.get('i ...