Python—网络通信编程之udp通信编程
服务端代码
import socket # 1.创建实例,即数据报套接字
server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 2.绑定地址,进行监听
server.bind(("127.0.0.1", 3120)) # 3.收发消息
while True:
# data = server.recv(1024) # 接收数据,返回的没有addr
data, addr = server.recvfrom(1024) # 接收数据,返回的有addr
print("recv from client:%s,content is:%s" % (addr, data.decode()))
server.sendto(("接受到消息:[{0}]".format(data.decode())).encode(), addr) # 4.关闭套接字
server.close()
客户端代码
import socket # 1.创建数据报套接字
client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 2.要连接的服务端地址
ADDR = ("127.0.0.1", 3120) # 3.收发信息
while True:
msg = input("请输入要发送的消息:")
if not msg or msg == "exit":
break
client.sendto(msg.encode(), ADDR)
data, addr = client.recvfrom(1024)
print("recv from server:%s,content is:%s" % (addr, data.decode())) # 4.关闭套接字
client.close()
知识点1:udp通信可以多个客户端的连接。tcp通信不可以多个客户端的连接。
知识点2:udp通信之前不需要先与服务端建立连接。tcp通信之前需要三次握手先与服务端建立连接之后才能通信。
Python—网络通信编程之udp通信编程的更多相关文章
- Python—网络通信编程之tcp通信编程
服务端代码 import socket # 1.创建流式套接字实例 # server = socket.socket() server = socket.socket(socket.AF_INET, ...
- java 网络编程之UDP通信和简单的群聊程序
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- Python—网络通信编程之tcp非阻塞通信(socketserver)
服务端代码 import socketserver # 定义一个类 class MyServer(socketserver.BaseRequestHandler): # 如果handle方法出现报错, ...
- python网络编程之UDP方式传输数据
UDP --- 用户数据报协议(User Datagram Protocol),是一个无连接的简单的面向数据报的运输层协议. UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能 ...
- python网络编程之TCP通信实例
一. server.py import socket host="localhost" port= s=socket.socket(socket.AF_INET,socket.SO ...
- 网络编程之UDP编程
网络编程之UDP编程 UDP协议是一种不可靠的网络协议,它在通信的2端各建立一个Socket,但是这个Socket之间并没有虚拟链路,这2个Socket只是发送和接受数据的对象,Java提供了Data ...
- python并发编程之Queue线程、进程、协程通信(五)
单线程.多线程之间.进程之间.协程之间很多时候需要协同完成工作,这个时候它们需要进行通讯.或者说为了解耦,普遍采用Queue,生产消费模式. 系列文章 python并发编程之threading线程(一 ...
- [深入浅出WP8.1(Runtime)]Socket编程之UDP协议
13.3 Socket编程之UDP协议 UDP协议和TCP协议都是Socket编程的协议,但是与TCP协议不同,UDP协议并不提供超时重传,出错重传等功能,也就是说其是不可靠的协议.UDP适用于一次只 ...
- python并发编程之gevent协程(四)
协程的含义就不再提,在py2和py3的早期版本中,python协程的主流实现方法是使用gevent模块.由于协程对于操作系统是无感知的,所以其切换需要程序员自己去完成. 系列文章 python并发编程 ...
随机推荐
- Golang 函数以及函数和方法的区别
在接触到go之前,我认为函数和方法只是同一个东西的两个名字而已(在我熟悉的c/c++,python,java中没有明显的区别),但是在golang中者完全是两个不同的东西.官方的解释是,方法是包含了接 ...
- Cisco AP-Mobility Express基础
Part I 介绍 1.1基本概况 Cisco Mobility Express这个名词出现在Cisco “8”系列的AP上,例如现在的AP1852,AP2802,AP3802等都是Mobility ...
- java课极限测试
在临近国庆的9月30号补课日 碰到了惨绝人寰的java课极限测试 我从下午两点半做到晚上九点 不得不说人在烦躁的时候是真的没办法写代码的 根本不想思考也不想学习.最后的几个小时基本就是在叹息和坐着.也 ...
- LeetCode简单题(四)
题目一: 给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格. 设计一个算法来计算你所能获取的最大利润.你可以尽可能地完成更多的交易(多次买卖一支股票). 注意:你不能同时参与多笔交易(你 ...
- easy flash &easy log
EASY FLASH: ENV 快速保存产品参数(k-v型no-sql数据库存储),支持 写平衡(磨损平衡) 及 掉电保护 功能 EasyFlash不仅能够实现对产品的 设定参数 或 运行日志 等信息 ...
- 解决方法:Could not load file or assembly 'WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
最近使用VS2015调试ASP.NET 程序遇到了该问题: 在网上找了很多方法都不能解决,最后自己解决了,方法如下: 在project -> NuGet管理中找到已安装的所有程序:将Web Op ...
- 爬虫(十四):Scrapy框架(一) 初识Scrapy、第一个案例
1. Scrapy框架 Scrapy功能非常强大,爬取效率高,相关扩展组件多,可配置和可扩展程度非常高,它几乎可以应对所有反爬网站,是目前Python中使用最广泛的爬虫框架. 1.1 Scrapy介绍 ...
- AT指令之 TCP/IP 命令
BC26 还有一组专用于 TCP 通信的 AT 指令:<BC26_TCP/IP_AT_Commands_Manual_V1.1>,之前已经有了 Socket 可以进行 TCP 通信,现在又 ...
- github日常的基本命令
git 常用命令 git clone 仓库地址 -从远端克隆项目 git pull -从远端拉取代码 git pull -p -从远端拉取代码和分支 提交代码流程: git add xxx -添加到暂 ...
- UIView动画的使用
下面介绍三种简单的UIView动画的使用,如果在项目中对动画没有太多“细致化”的设计要求,基本够用了. 一.首尾式动画 说明:如果只是修改控件的属性,使用首尾式动画还是很方便的,如果还需要在动画完成后 ...