socketserver

Python之路,Day8

丶灬走出姿态 提交于 2020-08-06 05:09:51
本节内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 作业:开发一个支持多用户在线的FTP程序 1. Socket介绍 概念 A network socket is an endpoint of a connection across a computer network . Today, most communication between computers is based on the Internet Protocol ; therefore most network sockets are Internet sockets . More precisely, a socket is a handle (abstract reference) that a local program can pass to the networking application programming interface (API) to use the connection, for example "send this data on this socket". For example, to send "Hello, world!" via TCP to port 80 of

socketServer1

霸气de小男生 提交于 2020-08-05 03:24:56
#include<stdio.h> #include<string.h> #include<sys/types.h> #include<unistd.h> #include<ctype.h> #include<arpa/inet.h> // ================================================= // ================================================= // 宏定义 // ================================================= // ================================================= #define RECE_BUF_LEN 128 // receive buffer length #define SEND_BUF_LEN 128 // send buffer length #define PORT 0xa5a6 // port #define SERVER_INIT_IP "192.168.50.129" #define CLIENT_INIT_IP "192.168.50.130" // ================================================= // ==

socketServer

无人久伴 提交于 2020-08-04 11:09:24
#include<stdio.h> #include<string.h> #include<sys/types.h> #include<unistd.h> #include<ctype.h> #include<arpa/inet.h> // ================================================= // ================================================= // 宏定义 // ================================================= // ================================================= #define RECE_BUF_LEN 128 // receive buffer length #define SEND_BUF_LEN 128 // send buffer length #define PORT 0xa5a6 // port #define SERVER_INIT_IP "192.168.50.130" #define CLIENT_INIT_IP "192.168.50.129" // ================================================= // ==

八年阿里测试大佬,对非UI自动化测试和UI自动化测试理解与分析!!! 机密文件!!!随时会删!!!

a 夏天 提交于 2020-07-26 10:25:51
先抄一段话,来说什么是自动化测试:Test automation In software testing, test automation is the use of special software (separate from the software being tested) to control the execution of tests and the comparison of actual outcomes with predicted outcomes. (在软件测试中,测试自动化是使用特殊的软件(与被测试的软件分离)来控制测试的执行以及实际结果与预测结果的比较。) 本篇文章也不打算总结有多少种测试,他们怎么分类,我们只讲自动化测试…… 上边一段话也讲了什么是自动化测试,简单来讲就是一个操作软件的软件,然后可以对操作的结果进行验证。这里的定义是跟被测软件分离,这个我不是很同意这句话,有些自动化测试是进程内的,需要inject代码来运行测试代码,甚至有些直接类似病毒附加二进制代码并且运行在被测程序的进程内(确实见过一个软件是这么做的,直接改二进制代码然后在进程内运行一个socket server来执行测试)。 既然是一种软件,那我们就简单按照有没有UI,分为非UI和UI的自动化测试程序: 常见的非UI自动化 大部分的Unit Test API test

Python http.server URL Redirect

别来无恙 提交于 2020-07-24 22:44:08
源码分析 众所周知Python有一个一键启动Web服务器的方法: python3 -m http.server port 在任意目录执行如上命令,即可启动一个web文件服务器,这个方法用到了http.server模块,该模块包含以下几个比较重要的类: HTTPServer这个类继承于socketserver.TCPServer,说明其实HTTP服务器本质是一个TCP服务器 BaseHTTPRequestHandler,这是一个处理TCP协议内容的Handler,目的就是将从TCP流中获取的数据按照HTTP协议进行解析,并按照HTTP协议返回相应数据包,但这个类解析数据包后没有进行任何操作,不能直接使用,如果我们要写自己的Web应用,可以继承这个类,并实现其中的do_XXX等方法 SimpleHTTPRequestHandler,这个类继承于BaseHTTPRequestHandler,从父类中拿到解析好的数据包,并将用户请求的path返回给用户,等于实现了一个静态文件服务器 CGIHTTPRequestHandler,这个类继承于SimpleHTTPRequestHandler,在静态文件服务器的基础上,增加了执行CGI脚本的功能 简单来说就是如下: +-----------+ +------------------------+ | TCPServer | |

python应用之socket编程

落爺英雄遲暮 提交于 2020-05-01 23:06:08
tcp/udp下的socket的基本使用 基于 tcp 的 socket Tcp 是基于链接的 , 必须先启动服务端 , 然后启动客户端进行链接 服务端: ss = socket() # 创建服务器套接字 ss.bind() # 把地址绑定到套接字 ss.listen() # 监听链接 inf_loop: # 服务器无限循环 cs = ss.accept() # 接受客户端链接 comm_loop: # 通讯循环 cs.recv()/cs.send() # 对话(接收与发送) cs.close() # 关闭客户端套接字 ss.close() # 关闭服务器套接字(可选) 客户端: cs = socket() # 创建客户套接字 cs.connect() # 尝试连接服务器 comm_loop: # 通讯循环 cs.send()/cs.recv() # 对话(发送/接收) cs.close() # 关闭客户套接字 简单的实现: 这里是单个的 一次通信 mport socket # AF_INET 基于网络通信, SOCK_STREAM(基于流的,tcp) phone = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 买手机 phone.bind(( ' 127.0.0.1 ' , 8000)) # 绑定手机卡 phone

Py西游攻关之Socket网络编程

让人想犯罪 __ 提交于 2020-04-27 20:20:48
新闻 管理 Py西游攻关之Socket网络编程 知识预览 计算机网络 回到顶部 网络通信要素 : A:IP地址 (1) 用来标识网络上一台独立的主机 (2) IP地址 = 网络地址 + 主机地址(网络号:用于识别主机所在的网络/网段。主机号:用于识别该网络中的主机) (3) 特殊的IP地址: 127.0.0.1 (本地回环地址、保留地址,点分十进制) 可用于简单的测试网卡是否故障。表示本机。 B:端口号: (1) 用于标识进程的逻辑地址。不同的进程都有不同的端口标识。 (2) 端口: 要将数据发送到对方指定的应用程序上,为了标识这些应用程序,所以给这些网络应用程序都用数字进行标识。为了方便称呼这些数字,则将这些数字称为端口。(此端口是一个逻辑端口) C: 传输协议 : 通讯的规则。例如:TCP、UDP协议(好比两个人得用同一种语言进行交流) ①、UDP:User Datagram Protocol用户数据报协议 特点: 面向无连接:传输数据之前源端和目的端不需要建立连接。 每个数据报的大小都限制在64K(8个字节)以内。 面向报文的不可靠协议。(即:发送出去的数据不一定会接收得到) 传输速率快,效率高。 现实生活实例:邮局寄件、实时在线聊天、视频会议…等。 ②、TCP:Transmission Control Protocol传输控制协议 特点: 面向连接:传输数据之前需要建立连接

网络编程基础socket 重要中:TCP/UDP/七层协议

房东的猫 提交于 2020-04-27 02:31:49
计算机网络的发展及基础网络概念 问题:网络到底是什么?计算机之间是如何通信的? 早期 : 联机 以太网 : 局域网与交换机 广播   主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。 ip地址与ip协议 规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示 范围0.0.0.0-255.255.255.255 一个ip地址通常写成四段十进制数,例:172.16.10.1 mac地址   head中包含的源和目标地址由来:ethernet规定接入internet的设备都必须具备网卡,发送端和接收端的地址便是指网卡的地址,即mac地址。   mac地址:每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号) arp协议 ——查询IP地址和MAC地址的对应关系   地址解析协议,即ARP

Java--利用TCP实现文件上传

半腔热情 提交于 2020-04-25 12:35:15
Java--利用TCP实现文件上传 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 图解 步骤 【客户端】输入流,从硬盘读取文件数据到程序中。 【客户端】输出流,写出文件数据到服务端。 【服务端】输入流,读取文件数据到服务端程序。 【服务端】输出流,写出文件数据到服务器硬盘中 代码实现 服务器 import java.io.*; import java.net.ServerSocket; import java.net.Socket; /** * @author ServerTCP * @date 2020/4/25 10:51 上午 */ public class ServerTCP { public static void main(String[] args) throws IOException { System.out.println("服务启动,等待连接中"); //创建ServerSocket对象,绑定端口,开始等待连接 ServerSocket ss = new ServerSocket(8888); //接受accept方法,返回socket对象 Socket server = ss.accept(); //获取输入对象,读取文件 BufferedInputStream bis = new

基于netty实现rpc框架-spring boot服务端

China☆狼群 提交于 2020-04-23 22:28:46
demo地址 https://gitee.com/syher/grave-netty RPC介绍 首先了解一下RPC:远程过程调用。简单点说就是本地应用可以调用远程服务器的接口。那么通过什么方式调用远程接口呢?说白了RPC只是一种概念。他的调用可以基于HTTP实现,也可以基于TCP/IP实现。甚至私人定制的通讯协议。 当然,私人定制通讯协议成本过高且不具备通用性。我们不做展开讨论(其实我也展不开。。。)。那为什么不使用HTTP协议呢?受限于HTTP协议层级过高,数据传输效率不如TCP/IP。所以RPC远程调用一般采用TCP/IP实现。即调用socket方法。 RPC实现原理 1. 客户端发起远程服务调用。 2. 客户端将类信息、调用方法和入参信息通过socket通道发送给服务端。 3. 服务端解析数据包,调用本地接口。 5.将执行结果通过socket返回给客户端。 6.客户端拿到并解析返回结果。 RPC实现 java如何实现一个rpc框架,其实就是按照上面的原理再做一些详细的补充。比如通过动态代理封装客户端的数据包、通过反射机制实现服务端实现类的调用等等。 今天,我们先基于spring boot + netty 做rpc服务端的实现。 首先,做一个注解用于标识接口提供rpc调用。 @Target(ElementType.TYPE) @Retention