全栈工程师开发手册 (作者:栾鹏)
python教程全解


python使用socket创建udp服务器端和客户端。

服务器端为一个时间戳服务器,在接收到客户端发来的数据后,自动回复。

客户端,等待用户输入,回车后向服务器发送用户输入的内容。

分别在python2.7和python3.6下测试。在启动时需要先启动服务器端,在启动客户端。

udp协议是无连接的,不需要向tcp一样先建立连接,也就照成了在DDOS攻击中,多以发送UDP包。

python2.7环境下

udp服务器端代码

#coding:utf-8from socket import *
from time import ctimeprint("=====================时间戳UDP服务器=====================");HOST = ''   #主机号为空白表示可以使用任何可用的地址。
PORT = 21567  #端口号
BUFSIZ = 1024  #接收数据缓冲大小
ADDR = (HOST, PORT)udpSerSock = socket(AF_INET, SOCK_DGRAM) #创建udp服务器套接字
udpSerSock.bind(ADDR)  #套接字与地址绑定while True:print('等待接收消息...')data, addr = udpSerSock.recvfrom(BUFSIZ) #连续接收指定字节的数据,接收到的是字节数组udpSerSock.sendto('[%s] %s' % (ctime(), data), addr)  #向客户端发送时间戳数据,必须发送字节数组print('响应消息到', addr)udpSerSock.close()  #关闭服务器socket

udp客户端代码

#coding:utf-8from socket import *print("=====================UDP客户端=====================");HOST = '127.0.0.1'   #本机测试
PORT = 21567  #端口号
BUFSIZ = 1024  #接收消息的缓冲大小
ADDR = (HOST, PORT)udpCliSock = socket(AF_INET, SOCK_DGRAM) #创建客户端套接字while True:data = raw_input('> ')  #接收用户输入if not data:   #如果用户输入为空,直接回车就会发送"",""就是代表falsebreakudpCliSock.sendto(data, ADDR)  #客户端发送消息,必须发送字节数组data, ADDR = udpCliSock.recvfrom(BUFSIZ)  #接收回应消息,接收到的是字节数组if not data:   #如果接收服务器信息失败,或没有消息回应breakprint(data)  #打印回应消息udpCliSock.close()#关闭客户端socket

python3.6环境下

udp服务器端代码

#coding:utf-8from socket import *
from time import ctimeprint("=====================时间戳UDP服务器=====================");HOST = ''   #主机号为空白表示可以使用任何可用的地址。
PORT = 21567  #端口号
BUFSIZ = 1024  #接收数据缓冲大小
ADDR = (HOST, PORT)udpSerSock = socket(AF_INET, SOCK_DGRAM) #创建udp服务器套接字
udpSerSock.bind(ADDR)  #套接字与地址绑定while True:print('等待接收消息...')data, addr = udpSerSock.recvfrom(BUFSIZ) #连续接收指定字节的数据,接收到的是字节数组udpSerSock.sendto(bytes('[%s] %s' % (ctime(), data.decode('utf-8')), 'utf-8'), addr)  #向客户端发送时间戳数据,必须发送字节数组print('响应消息到', addr)udpSerSock.close()  #关闭服务器socket

udp客户端代码

#coding:utf-8from socket import *print("=====================UDP客户端=====================");HOST = '127.0.0.1'   #本机测试
PORT = 21567  #端口号
BUFSIZ = 1024  #接收消息的缓冲大小
ADDR = (HOST, PORT)udpCliSock = socket(AF_INET, SOCK_DGRAM) #创建客户端套接字while True:data = input('> ')  #接收用户输入if not data:   #如果用户输入为空,直接回车就会发送"",""就是代表falsebreakudpCliSock.sendto(bytes(data,'utf-8'), ADDR)  #客户端发送消息,必须发送字节数组data, ADDR = udpCliSock.recvfrom(BUFSIZ)  #接收回应消息,接收到的是字节数组if not data:   #如果接收服务器信息失败,或没有消息回应breakprint(str(data,'utf-8'))  #打印回应消息udpCliSock.close()#关闭客户端socket

python应用系列教程——python使用socket创建udp服务器端和客户端相关推荐

  1. python应用系列教程——python使用socket创建tcp服务器和客户端

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python使用socket创建tcp服务器和客户端. 服务器端为一个时间戳服务器,在接收到客户端发来的数据后,自动回复. 客户端,等待用户输 ...

  2. python应用系列教程——python使用SocketServer实现网络服务器,socket实现客户端

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python使用SocketServer实现网络服务器 SocketServer简化了网络服务器的编写.在进行socket创建时,使用Sock ...

  3. python基础系列教程——Python的安装与测试:python解释器、PyDev编辑器、pycharm编译器

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 全栈工程师开发手册 (作者:陈玓玏) python教程全解 白手起家,从头开启python的 ...

  4. python基础系列教程——python基础语法全解

    点击此处​​​​​​​ python教程全解 了解python 1.  了解Python Python是一种解释型(这意味着开发过程中没有了编译这个环节).面向对象(支持面向对象的风格或代码封装在对象 ...

  5. python应用系列教程——python中ftp操作:连接、登录、获取目录,重定向、上传下载,删除更改

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python中ftp操作: ftp=FTP() #设置变量 ftp.set_debuglevel(2) #打开调试级别2,显示详细信息 ftp ...

  6. python测试系列教程——python+Selenium+chrome自动化测试框架

    全栈工程师开发手册 (作者:栾鹏) python教程全解 需要的环境 浏览器(Firefox/Chrome/IE-) Python Selenium Selenium IDE(如果用Firefox) ...

  7. python基础系列教程——python面向对象编程全解

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python面向对象编程全解. 面向对象技术简介 一个类占有一个独立的空间,类中的属性叫做类变量,类中的函数,叫做类的方法. 类(Class) ...

  8. python应用系列教程——python使用scapy监听网络数据包、按TCP/IP协议进行解析

    分享一个朋友的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!大家可以看看是否对自己有帮助:点击打开 docker/kubernetes入门视频教程 全栈工程师开发手册 (作者:栾鹏) pyth ...

  9. python应用系列教程——python使用smtp上传邮件,使用pop3下载邮件

    全栈工程师开发手册 (作者:栾鹏) python教程全解 python使用smtp上传邮件,使用pop3下载邮件.由于上传后立刻下载了,所以有时不会再在网页邮箱中有通知. 可设置邮件的收发人,主题,内 ...

最新文章

  1. RDKit | 基于RDKit和化学信息学探索化学空间
  2. 学python最重要的是_为什么越来越多的人选择学Python?
  3. 一种业界通用的响应式布局解决方法
  4. 全国计算机等级考试 备考,全国计算机等级考试经验:如何调整备考心态
  5. 二、先在SD卡上启动U-boot,再烧写新的U-boot进Nandflash
  6. https开头的网址是什么意思_我想打这个面试官,他给我挖坑,问我:URI中的 “//” 有什么用?...
  7. 小结-python连接redis的基本配置-解决远程连接问题
  8. 网络拓扑图画图工具_一款功能强大的免费在线作图工具
  9. 因为CSS文件编码问题IE6无法正确解析CSS
  10. 程序员 520 脱单指南!
  11. vue中axios访问Java后端跨域问题解决
  12. 完整的蓝屏错误代码大全详解
  13. SLAM数据集(tum/kitti)轨迹对齐与结果评估
  14. EAS BOS 开发问题集锦
  15. Laya 2.0 微信排行榜数据
  16. spring batch 通过配置文件的方法读文件
  17. 高并发下的幂等策略分析
  18. 【python】随机数的生成
  19. 服装ERP应用 20 ERP在分销型服装企业的物流管理
  20. 互联网的出现与发展使人类从个体变成万物相联的新集群

热门文章

  1. praat 语音识别教程
  2. 数据类型以及数据类型的转换---防止忘记
  3. 前端链接共享(记录)
  4. 输入指定答案提示正确C语言,大学C语言课件及复习答案输入输出.ppt
  5. java在原文件替换_Java:创建临时文件并替换为原始文件
  6. 最简单的基于DirectShow的示例:获取Filter信息
  7. mysql tcp优化_mysql 优化
  8. vue 日期面板_VUE项目中如何方便的转换日期和时间
  9. 2022牛客寒假算法基础集训营4 签到题7题
  10. 【2021牛客暑期多校训练营5】K King of Range(单调队列)