模拟服务器和客户端交互的python脚本

脚本:

模拟服务器和客户端交互:

import argparse, socket
from datetime import datetimeIP = "127.0.0.1"
CODING = "utf8"
MAX_BYTES = 65535  # UDP最大长度def server(port):  # port:端口号sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # SOCK_DGRAM表示使用udp,SOCK_STREAM表示TCPsock.bind((IP, port))  # 表示进程启动后监听port端口print("Listing at {}".format(sock.getsockname())) #getsockname返回(ip,port)while True:  # 不停的接收客户消息,然后告诉客户消息的长度data, address = sock.recvfrom(MAX_BYTES)  # 接受客户端发来的消息,data表示消息数据,address表示客户地址text = data.decode(CODING)  # 使用utf8解码二进制流,还原成字符串print('The client at {} says {}'.format(address, text))text = 'Your data was {} bytes long'.format(len(data))sock.sendto(text.encode(CODING), address)def client(port):sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)text = 'The time is {}'.format(datetime.now())sock.sendto(text.encode(CODING), ("127.0.0.1", port))print('The os assigned me the address {}'.format(sock.getsockname()))  # 客户程序的端口号是操作系统随机分配的,每次进程启动端口都会变化data, address = sock.recvfrom(MAX_BYTES)print('The server {} replied {}'.format(address, data.decode(CODING)))if __name__ == '__main__':choices = {'client': client, 'server': server}parser = argparse.ArgumentParser(description='Send and receive UDP locally')parser.add_argument('role', choices=choices, help='which orle to play: client or server.')parser.add_argument('-p', metavar='PORT', type=int, default=1060, help='UDP port(defuault 1060)')args = parser.parse_args()function = choices[args.role]function(args.p)

结果:
服务端:
在这里插入图片描述
客户端:
每次是随机端口在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/358717.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

动态规划 dynamic programming

动态规划dynamic programming June,7, 2015 作者:swanGooseMan 出处:http://www.cnblogs.com/swanGooseMan/p/4556588.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 &…

利用Vulnhub复现漏洞 - JBoss JMXInvokerServlet 反序列化漏洞

JBoss JMXInvokerServlet 反序列化漏洞 Vulnhub官方复现教程漏洞原理 复现过程启动环境端口设置浏览器设置BurpSuit设置 复现漏洞序列化数据生成发送POCEXP Vulnhub官方复现教程 https://vulhub.org/#/environments/jboss/JMXInvokerServlet-deserialization/ 漏洞原理 这…

linux mysql 安装启动失败,Linux服务器一键安装包的mysql启动失败

Linux服务器上用一键安装包配置的环境,启动mysql失败,提示如下错误信息:排查方法:1、查看服务器的磁盘空间是否正常,登录服务器执行命令df -h查看磁盘空间,如果服务器的系统盘或者数据盘空间满了&#xff0…

Ubuntu 安装mysql和简单操作

ubuntu上安装mysql非常简单只需要几条命令就可以完成。 1. sudo apt-get install mysql-server2. apt-get isntall mysql-client3. sudo apt-get install libmysqlclient-dev安装过程中会提示设置密码什么的,注意设置了不要忘了,安装完成之后可以使用如…

在BurpSuite中安装Jython环境

在BurpSuite中安装Jython环境 下载模块 下载地址 https://www.jython.org/download.html 下载 Jython Standalone版本的 打开burp 第一个框子是刚刚下载jar包 第二个时候python的模块文件地址 要到 lib\site-packages里面 成功 转载于:https://blog.csdn.net/w…

matlab dtft的函数,DTFT的Matlab矩阵计算的理解

其实是早应该想到的,今天写程序的时候想到了。然后,跟同学说起来,说,原来国外的教材很多都是矩阵的形式来表示离散傅里叶变换的。但是国内的教材没有这么表达。一个是,自己看的东西还是少了,一个是&#xf…

xss测试工具(xsstrike基于python)

xsstrike很强 项目地址: https://github.com/s0md3v/XSStrike安装: git clone https://github.com/s0md3v/XSStrike.git使用文档: https://github.com/s0md3v/XSStrike/wiki/Usageusage: xsstrike.py [-h] [-u TARGET] [--data DATA] [-t …

变量和字符串

变量名就像我们现实社会的名字,把一个值赋值给一个名字时,Ta会存储在内存中,称之为变量(variable),在大多数语言中,都把这种动作称为(给变量赋值)或(把值存储在变量中&am…

Windows安全配置加固

安全配置加固——账号口令 账号优化 目的是为了梳理系统中的账号以及口令,避免默认账号及弱口令的存在 查看账号方式 在Windows中查看账号的方式有以下几种,这里就来简述一下 第一种:开始->运行->compmgmt.msc(进入计算…

存根类 测试代码 java_常规单元测试和存根–测​​试技术4

存根类 测试代码 java我的上一个博客是有关测试代码的方法以及讨论您做什么和不必进行测试的方法的一系列博客中的第三篇。 它基于我使用一种非常常见的模式从数据库检索地址的简单方案: …并且我提出了这样的想法,即任何不包含任何逻辑的类实际上都不需…

使用 Python 爬取网页数据

在需要过去一些网页上的信息的时候,使用 Python 写爬虫来爬取十分方便。 1. 使用 urllib.request 获取网页 urllib 是 Python 內建的 HTTP 库, 使用 urllib 可以只需要很简单的步骤就能高效采集数据; 配合 Beautiful 等 HTML 解析库, 可以编写出用于采集网络数据的…

多线程(初级篇)

相关概念进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。一个进程是一个独立的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了…

了解ADF生命周期中的ADF绑定

在本文中,我将重点介绍ADF绑定层,并探讨当最初从浏览器请求带有某些数据的ADF页面时,它如何工作。 Oracle ADF提供了自己的JSF生命周期扩展版。 实际上,ADF扩展了标准JSF生命周期实现类,并提供了ADF阶段侦听器&#x…

绕过 WAF:绕过一些 WAF 设备的 Burp 插件

我写了这个插件使用的技术博客文章在这里一会儿回来。如果存在特定标头,许多 WAF 设备可能会被诱骗相信请求来自自身,因此是可信的。绕过方法的基础知识可以在此处的 HP 博客文章中找到。 一段时间以来,我一直在 Burp 中实施匹配/替换规则&…

windows apache部署php,Windows下部署Apache+PHP+MySQL运行环境实战

首先是MySQL,(这边吐槽一下被Oracle收购的MySQL)一步一步往下,无需更多的配置然后安装Apache,也是一步一步往下安装PHP,(我偷懒我自豪, 在PHP下载页面找那个Installer的文件.......吐槽可能不是最新的版本 ~)下载页面安…

粉丝提问:有没有人会做彩虹表

彩虹表就是一个庞大的、针对各种可能的字母组合预先计算好的哈希值的集合,不一定是针对MD5算法的,各种算法的都有,有了它可以快速的破解各类密码。越是复杂的密码,需要的彩虹表就越大,现在主流的彩虹表都是100G以上。 …

fofa自动化爬虫脚本更新+详解

fofa自动化爬虫脚本更新详解 起因 最近要用到fofa爬虫,为什么要用爬虫不用api,问就是穷,想起来之前写过一个相关的脚本:Fofa-python-脚本,是很久以前写的了,之前写的时候有点问题,昨天重新修…

【APICloud系列|16】苹果开发者账号如何更改双重认证的手机号

按照一般的更改流程: 现在苹果账号安全系统升级,一般需要同意协议或者和本公司密切相关的人员才能操作。我这种借苹果手机操作的人除外。 那我用win7电脑如何操作呢? 登录苹果开发者账号, 进入如下管理账号地址:htt…

JS文件信息收集工具-LinkFinder

0x00 前言 我们在渗透测试的之前,信息收集是必要的步骤,而JS文件中往往会暴露出很多的信息,比如一些注释的中铭感信息,内网ip地址泄露等等,还会有一些绝对路径或者相对路径的url,而这些url中很有可能就存在…

extjs中Store和grid的刷新问题

问题1:Store.load() 和Store.setproxy()区别 问题2:修改后的Grid 更新: Store.reload() 问题3,store删除后刷新会出问题 Store移除一行:Store.removeAt(Number index) 从数据集中删除指定索引位置的记录     或者Store.reload…