UDPserver.py

 import socket
#导入套接字模块 s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# - socket.AF_INET:IPV4
# - socket.STREAM:TCP
# - socket.DGRAM:UDP s.bind(('',25555))
#绑定套接字有效地址和端口
#''空位任何地址 本地的127.0.0.1 和局域网还有自己真实的ip
print('[+] Server Open.....') while True:
try:
data,c_addr = s.recvfrom(1024)
#一次性接受1024bytes的数据 ,返回一个元组,其中有数据和地址
#UDP不需要构成连接,直接发送即可
print('from:',c_addr)
#c_addr是一个地址,发送消息的客户端的IP和端口的二元组
print('say:%s'%(data.decode('utf-8')))
msg = data.decode('utf-8')
s.sendto(msg.encode('utf-8'),c_addr)
#发送信息,其中有两个参数,一个是信息,一个是目标地址和端口
except KeyboardInterrupt:
break print('[+] Server Close......')
s.close

UDPclient.py

 import socket
#导入套接字模块 c = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# - socket.AF_INET:IPV4
# - socket.STREAM:TCP
# - socket.DGRAM:UDP while True:
try:
msg = input('>>>')
if msg == 0:
#判断输入是否为空 就是直接回车了
continue
#UDP不需要构成连接,直接发送即可
c.sendto(msg.encode('utf-8'),('127.0.0.1',25555))
#发送消息,其中两个参数,第一个是要发送的信息
#第二个是发送的ip地址和端口,是一个元组 data,s_addr = c.recvfrom(1024) #c_addr是一个地址,发送消息的客户端的IP和端口的二元组
print('$: %s'%(data.decode('utf-8')))
except KeyboardInterrupt:
break c.close()

UDP套接字模型

  • UDP不需要构成连接,直接发送即可

  • 服务端模型:

    • s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

    • s.bind(('',25555))

      • data,c_addr = s.recvfrom(1024)

        • 别人发来的消息 就直接发到s服务端套接字了

        • data:发来的数据

        • c_addr:谁发的

      • s.sendto(msg, c_addr)

  • send recv

  • sendto recvfrom

    • 都是阻塞的

python UDP套接字通信的更多相关文章

  1. QT下UDP套接字通信——QUdpSocket 简单使用

    QT下UDP套接字通信--QUdpSocket QUdpSocket类提供一个UDP套接字. UDP(用户数据报协议)是一种轻量级.不可靠.面向数据报.无连接的协议.它可以在可靠性不重要的情况下使用. ...

  2. Python socket套接字通信

    一.什么是socket? socket是一个模块, 又称套接字,用来封装 互联网协议(应用层以下的层). 二.为什么要有socket? socket可以实现互联网协议 应用层以下的层 的工作,提高开发 ...

  3. python 之 网络编程(基于UDP协议的套接字通信)

    8.5 基于UDP协议的套接字通信 UDP协议:数据报协议 特点:无连接,一发对应一收,先启动哪一端都不会报错 优点:发送效率高,但有效传输的数据量最多为500bytes 缺点:不可靠:发送数据,无需 ...

  4. Python 3 udp 套接字

    Python 3 udp套接字 TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号, ...

  5. 基于tcp/udp协议的套接字通信

    目录 一.套接字分类 二.套接字的工作流程 三.基于tcp协议的套接字 四.基于udp协议的套接字 一.套接字分类 1.基于文件类型的套接字家族:AF_UNIX 2.基于网络类型的套接字家族:AF_I ...

  6. 【Python网络编程】利用Python进行TCP、UDP套接字编程

    之前实现了Java版本的TCP和UDP套接字编程的例子,于是决定结合Python的学习做一个Python版本的套接字编程实验. 流程如下: 1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接 ...

  7. Python之路(第三十二篇) 网络编程:udp套接字、简单文件传输

    一.UDP套接字 服务端 # udp是无链接的,先启动哪一端都不会报错 # udp没有链接,与tcp相比没有链接循环,只有通讯循环 server = socket.socket(socket.AF_I ...

  8. Python之路(第三十一篇) 网络编程:简单的tcp套接字通信、粘包现象

    一.简单的tcp套接字通信 套接字通信的一般流程 服务端 server = socket() #创建服务器套接字 server.bind() #把地址绑定到套接字,网络地址加端口 server.lis ...

  9. python开发socket套接字:粘包问题&udp套接字&socketserver

    一,发生粘包 服务器端 from socket import * phone=socket(AF_INET,SOCK_STREAM) #套接字 phone.setsockopt(SOL_SOCKET, ...

随机推荐

  1. 在线画UML图的工具

    工作需要在线画各种UML图,类图.协作图.用例图等等,调查了一些在线画UML图的工具,有的做的很好但要收费,例如:http://www.gliffy.com/,发现现在免费好用的是ProcessOn: ...

  2. Hibernate框架 主配置文件(Hibernate.cfg.xml)基本

    数据库连接参数配置: <?xml version='1.0' encoding='UTF-8'?> <!--表明解析本XML文件的DTD文档位置,DTD是Document Type ...

  3. 实现text-detection-ctpn一路的坎坎坷坷

    小编在学习文字检测,因为作者提供的caffe实现没有训练代码(不过训练代码可以参考faster-rcnn的训练代码),所以我打算先使用tensorflow实现,主要是复现前辈的代码,主要是对文字检测模 ...

  4. shiro源码篇 - shiro的session共享,你值得拥有

    前言 开心一刻 老师对小明说:"乳就是小的意思,比如乳猪就是小猪,乳名就是小名,请你用乳字造个句" 小明:"我家很穷,只能住在40平米的乳房" 老师:" ...

  5. AD预测论文研读系列1

    A Deep Learning Model to Predict a Diagnosis of Alzheimer Disease by Using 18F-FDG PET of the Brain ...

  6. Tomcat8源码笔记(三)Catalina加载过程

    之前介绍过 Catalina加载过程是Bootstrap的load调用的  Tomcat8源码笔记(二)Bootstrap启动 按照Catalina的load过程,大致如下: 接下来一步步分析加载过程 ...

  7. Jmeter接口测试——跨线程组调用参数(token为例)

    昨天学会了动态获取token,今天测试接口时希望能够实现跨线程调用token值. 实现原理: jmeter本身的“__setProperty”函数可以把某参数的值设置成jmeter本身的内置属性,而j ...

  8. IdentityServer4 中文文档 -6- (简介)示例服务器和测试

    IdentityServer4 中文文档 -6- (简介)示例服务器和测试 原文:http://docs.identityserver.io/en/release/intro/test.html 目 ...

  9. mysql中的游标使用

    1.游标的作用及属性 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作:游标有下面这些属性: a.游标是只读的,也就是不能更新它: b.游标是不能滚动的,也就是只能在一个方向上进 ...

  10. [转]使用@Test 也可以从spring容器中获取依赖注入

    转自:http://blog.csdn.net/u010987379/article/details/52091790 @RunWith(SpringJUnit4ClassRunner.class) ...