python UDP套接字通信
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套接字通信的更多相关文章
- QT下UDP套接字通信——QUdpSocket 简单使用
QT下UDP套接字通信--QUdpSocket QUdpSocket类提供一个UDP套接字. UDP(用户数据报协议)是一种轻量级.不可靠.面向数据报.无连接的协议.它可以在可靠性不重要的情况下使用. ...
- Python socket套接字通信
一.什么是socket? socket是一个模块, 又称套接字,用来封装 互联网协议(应用层以下的层). 二.为什么要有socket? socket可以实现互联网协议 应用层以下的层 的工作,提高开发 ...
- python 之 网络编程(基于UDP协议的套接字通信)
8.5 基于UDP协议的套接字通信 UDP协议:数据报协议 特点:无连接,一发对应一收,先启动哪一端都不会报错 优点:发送效率高,但有效传输的数据量最多为500bytes 缺点:不可靠:发送数据,无需 ...
- Python 3 udp 套接字
Python 3 udp套接字 TCP是建立可靠连接,并且通信双方都可以以流的形式发送数据.相对TCP,UDP则是面向无连接的协议 使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口号, ...
- 基于tcp/udp协议的套接字通信
目录 一.套接字分类 二.套接字的工作流程 三.基于tcp协议的套接字 四.基于udp协议的套接字 一.套接字分类 1.基于文件类型的套接字家族:AF_UNIX 2.基于网络类型的套接字家族:AF_I ...
- 【Python网络编程】利用Python进行TCP、UDP套接字编程
之前实现了Java版本的TCP和UDP套接字编程的例子,于是决定结合Python的学习做一个Python版本的套接字编程实验. 流程如下: 1.一台客户机从其标准输入(键盘)读入一行字符,并通过其套接 ...
- Python之路(第三十二篇) 网络编程:udp套接字、简单文件传输
一.UDP套接字 服务端 # udp是无链接的,先启动哪一端都不会报错 # udp没有链接,与tcp相比没有链接循环,只有通讯循环 server = socket.socket(socket.AF_I ...
- Python之路(第三十一篇) 网络编程:简单的tcp套接字通信、粘包现象
一.简单的tcp套接字通信 套接字通信的一般流程 服务端 server = socket() #创建服务器套接字 server.bind() #把地址绑定到套接字,网络地址加端口 server.lis ...
- python开发socket套接字:粘包问题&udp套接字&socketserver
一,发生粘包 服务器端 from socket import * phone=socket(AF_INET,SOCK_STREAM) #套接字 phone.setsockopt(SOL_SOCKET, ...
随机推荐
- OpenMP初探
OpenMP支持c.cpp.fortran,本文对比使用openmp和未使用openmp的效率差距和外在表现,然后讲解基础知识. 一.举例 1.使用OpenMP与未使用OpenMP的比较. OpenM ...
- oracle无法启动asm实例记录
首先查看asm进程ps aux|grep asmasm进程没起进行下面操作su - gridsrvctl start asmexit查看ora进程ps aux|grep oraora进程没起进行下面操 ...
- mysql修改数据路径
步凑: 1.关闭mysql服务 [root@localhost /]# service mysqld stop 2.移动mysql文件夹到自定义的目录 [root@localhost /]# mv / ...
- 私服仓库 nexus 环境搭建(win10)
1.1 简介: Nexus 是Maven仓库管理器,如果你使用Maven,你可以从Maven中央仓库 下载所需要的构件(artifact),但这通常不是一个好的做法,你应该在本地架设一个Maven仓库 ...
- Apache Commons Beanutils 三 (BeanUtils、ConvertUtils、CollectionUtils...)
前言 前面已经学习了Apache Commons Beanutils包里的PropertyUtils和动态bean,接下来将学习剩下的几个工具类,个人觉得还是非常实用的,特别是CollectionUt ...
- 讲解ontouchstart、ontouchend、onclick区别和坑点
今天要讲的这个并不复杂,我用一个例子来讲解吧 <div id="box"></div> var box = document.querySelector(& ...
- iOS ipa包瘦身,iOS8及以下text段超60MB
前沿 很早之前写过一篇相关文章,不过博客主机上跑路了之后数据没了,凭着记忆补了下相关资料 ipa安装包瘦身 清理无用图片,图片压缩(PNG换WebP和JPG),处于某种不可抗拒的原因,导致有部分3X图 ...
- C/C++和Lua是如何进行通信的?
为了实现Lua和其他语言之间的通信,Lua虚拟机为C/C++提供了两个特性: Lua_State状态机 lua_State主要是管理一个lua虚拟机的执行环境, 一个lua虚拟机可以有多个执行环境.L ...
- vuex状态管理之学习笔记
概述及使用场景 Vuex 是一个主要应用在中大型单页应用的类似于 Flux 的数据管理架构.它主要帮我们更好地组织代码,以及把应用内的的状态保持在可维护.可理解的状态. 但如果是简单的应用 ,就没有必 ...
- JavaWeb学习 (三)————Tomcat服务器学习和使用(二)
一.打包JavaWeb应用 在Java中,使用"jar"命令来对将JavaWeb应用打包成一个War包,jar命令的用法如下: