实现Http Server

python用http.server实现的http服务器 import os import shutil from io import StringIO from pymongo import MongoClient, ASCENDING from urllib.parse import urlsplit, parse_qs from http.server import HTTPServer, BaseHTTPRequestHandler clien 阅读详情


实现Http Serve

一、使用SUN公司在JDK6中提供的新包com.sun.net.httpserver 


  JDK6提供了一个简单的Http Server API,据此我们可以构建自己的嵌入式Http Server,它支持Http和Https协议,提供了HTTP1.1的部分实现,没有被实现的那部分可以通过扩展已有的Http Server API来实现,程序员必须自己实现HttpHandler接口,HttpServer会调用HttpHandler实现类的回调方法来处理客户端请求,在这里,我们把一个Http请求和它的响应称为一个交换,包装成HttpExchange类,HttpServer负责将HttpExchange传给HttpHandler实现类的回调方法. 
实现Http Server 


  实现Http Server比较简单,我就不我做解释,只要看下面的代码就能明白。 
实现Https Server 


  HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,SSL 使用证书来进行验证。对于需要使用 SSL 来保证通信安全的客户端和服务器,都必须创建证书。JSSE 使用的证书要用与 J2SE 一起发布的 Java keytool 来创建。用下列命令来为 HTTP 服务器创建一个 RSA 证书。 
prompt> keytool -genkey -keystore serverkeys -keyalg rsa -alias qusay 
这个命令会产生一个由别名 qusay 引用的证书,并将其保存在一个名为 serverkeys 的文件中。产生证书的时候,这个工具会提示我们输入一些信息。 

下面代码演示了怎样创建自己的Http Server 和Https Server: 

 

Java代码   收藏代码
  1. import java.io.IOException;   
  2. import java.io.InputStream;   
  3. import java.io.OutputStream;   
  4. import java.net.InetSocketAddress;   
  5. import com.sun.net.httpserver.HttpExchange;   
  6. import com.sun.net.httpserver.HttpHandler;   
  7. import com.sun.net.httpserver.HttpServer;   
  8. public class MyHTTPServer {   
  9.   public static void main(String[] args)   
  10.   {   
  11.     try {   
  12.       //实现HTTP SERVER   
  13.       HttpServer hs = HttpServer.create(new InetSocketAddress(8888),0);// 设置HttpServer的端口为80   
  14.       hs.createContext("/hujun", new MyHandler());// 用MyHandler类内处理到/的请求   
  15.       hs.setExecutor(null); // creates a default executor   
  16.       hs.start();   
  17.   
  18.       //实现HTTPS SERVER   
  19.       HttpsServer hss = HttpsServer.create(new InetSocketAddress(443),0);  //设置HTTPS端口这443   
  20.       KeyStore ks = KeyStore.getInstance("JKS");   //建立证书库   
  21.       ks.load(new FileInputStream("证书名" ), "密码");  //载入证书   
  22.       KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");  //建立一个密钥管理工厂   
  23.       kmf.init(ks, "密码");  //初始工厂   
  24.       SSLContext sslContext = SSLContext.getInstance("SSLv3");  //建立证书实体   
  25.       sslContext.init(kmf.getKeyManagers(), null, null);   //初始化证书   
  26.       HttpsConfigurator conf = new HttpsConfigurator(sslContext);  //在https配置   
  27.       hss.setHttpsConfigurator(conf);   //在https server载入配置   
  28.       hss.setExecutor(null); // creates a default executor     
  29.       hss.createContext("/", new MyHandler());// 用MyHandler类内处理到/的请求   
  30.       hss.start();   
  31.     } catch (Exception e){   
  32.       e.printStackTrace();   
  33.     }   
  34.   }   
  35. }   
  36.   
  37. class MyHandler implements HttpHandler {   
  38.   public void handle(HttpExchange t) throws IOException {   
  39.     InputStream is = t.getRequestBody();   
  40.     String response = "<font color='#ff0000'>come on baby</font>";   
  41.     t.sendResponseHeaders(200, response.length());   
  42.     OutputStream os = t.getResponseBody();   
  43.     os.write(response.getBytes());   
  44.     os.close();   
  45.   }   
  46. }   

 

 

 

 

 

二、使用Jetty 


  Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。 


  需要最少的包: 
  commons-logging.jar 
  javax.servlet.jar 
  org.mortbay.jetty.jar 
  org.mortbay.jmx.jar 

下面直接看代码,以嵌入模式启动Jetty,目前貌似不支持HTTPS 

 

Java代码   收藏代码
  1. import org.mortbay.http.HttpContext;   
  2. import org.mortbay.http.HttpServer;   
  3. import org.mortbay.http.SocketListener;   
  4. import org.mortbay.http.handler.ResourceHandler;   
  5. public class JettySample {   
  6.   public static void main(String[] args) throws Exception   
  7.   {   
  8.     //创建Jetty HttpServer对象   
  9.     HttpServer server = new HttpServer();   
  10.     //在端口8080上给HttpServer对象绑上一个listener,使之能够接收HTTP请求   
  11.     SocketListener listener = new SocketListener();   
  12.     listener.setPort(8080);   
  13.     server.addListener(listener);   
  14.      
  15.     //创建一个HttpContext,处理HTTP请求。   
  16.     HttpContext context = new HttpContext();   
  17.     //用setContextPath把Context映射到(/web)URL上。   
  18.     context.setContextPath("/web");   
  19.     //setResourceBase方法设置文档目录以提供资源   
  20.     context.setResourceBase("C:\\j2sdk1.4.1_05");   
  21.     //添加资源处理器到HttpContext,使之能够提供文件系统中的文件   
  22.     context.addHandler(new ResourceHandler());   
  23.     server.addContext(context);   
  24.     //启动服务器   
  25.     server.start();   
  26.   }   
  27. }   
 

 

Jetty的运行速度较快,而且是轻量级的,可以在Java中可以从test case中控制其运行。从而可以使自动化测试不再依赖外部环境,顺利实现自动化测试。 

 

 

 

 

三、使用tomcat embedded 


  Tomcat5中的Embeded版本,为大家在应用中集成完整的Web服务提供了尽可能大的空间,不仅使开发者容易获得对标准HTTP的处理,还有SSL的通讯处理,使开发者很容易就可以对原有非Web系统进行扩展以支持瘦客户端应用,通向Web大门的钥匙已经放在这里,剩下的就是看你怎样来发挥了。下面是示例代码: 

 

Java代码   收藏代码
  1. package tomcat;   
  2. import java.io.File;   
  3. import java.net.InetAddress;   
  4. import org.apache.catalina.Context;   
  5. import org.apache.catalina.Engine;   
  6. import org.apache.catalina.Host;   
  7. import org.apache.catalina.connector.Connector;   
  8. import org.apache.catalina.startup.Embedded;   
  9. public class EmbeddedTomcat {   
  10.   public static void main(String args[]) {   
  11.    try {   
  12.      // Create an embedded server   
  13.      Embedded embedded = new Embedded();   
  14.      String path = new File(".").getCanonicalPath();   
  15.      embedded.setCatalinaHome(path);   
  16.      // Create an engine   
  17.      Engine engine = embedded.createEngine();   
  18.      // Create a default virtual host   
  19.      Host host = embedded.createHost("localhost", path + "/webapps");   
  20.      engine.addChild(host);   
  21.      engine.setDefaultHost(host.getName());   
  22.      // Create the ROOT context   
  23.      Context rootCxt = embedded.createContext("", path + "/webapps/ROOT");   
  24.      rootCxt.setPrivileged(true);   
  25.      host.addChild(rootCxt);   
  26.      // Install the assembled container hierarchy   
  27.      embedded.addEngine(engine);   
  28.      // Assemble and install a default HTTP connector   
  29.      embedded.addConnector(embedded.createConnector(InetAddress.getByName("127.0.0.1"), 8080, false));   
  30.      // Start the embedded server   
  31.      embedded.start();   
  32.    }catch( Exception e ) {   
  33.      e.printStackTrace();   
  34.       }   
  35.   }   
  36. }  

转自: http://blog.163.com/web_promise/blog/static/1096316552011224101531794/
前端开发者必备工具:http-server 使用详解 在前端开发中,我们经常需要一个简单而强大的静态文件服务器来测试我们的应用。http-server 就是这样一个轻量级的命令行 HTTP 服务器,它简单易用,无需配置,是前端开发者的得力助手。本文将深入探讨 http-server 的安装、基本使用、高级配置以及在实际开发中的应用场景。 阅读详情

相关推荐

python:http.server --- HTTP 服务器

python:http.server --- HTTP 服务器

FuncPlotCalc 4758

http-server基本使用

1.什么是http-server http-server是一个简单的零配置的命令行http服务器(基于nodejs),它足够强大便于生产和使用,用于本地测试和开发。一般我们打开一个网页都是通过files协议本地打开的方式,当前端项目打包之后想在本地查看发布效果的时候,这时需要在本地开启一个服务,此时http-server开始起作用。 总结:采用http-server本地运行前端项目 2.基本使用 安装 npm install -g http-server 启动: http-server # 默认是

chen__cheng的博客 1万+

Java实现HTTPS请求及证书证书验证(附源码)

Java实现HTTPS请求及证书证书验证(附源码)   先发布一个初始的版本,主要以代码为主,具体的细节将之后更新。   服务器流程环节: 1、在本机服务器上生成一个自定义证书,格式为jks格式。 2、将自定义证书添加到客户端的信任的根证书库中,Windows系统中可以直接win+R 输入mmc即可找到添加区域。(一定是添加到信任的根证书中) 3、服务器初始化创建SSLContext上下文类型,这个过程包括创建密钥管理库和信任库两部分,使用的是SUN509的套件。 4、创建一个SSLCo

lunan的博客 2万+

http-server使用,启动本地服务器 & 使用serve包本地启动

node,http-server,serve

weixin_44867717的博客 3万+

VC++实现HTTP协议的两端:HTTP Server和HTTP Client实战指南

HTTP(HyperText Transfer Protocol)即超文本传输协议,是互联网上应用最为广泛的一种网络协议。它基于客户端/服务器模型,定义了客户端(通常指Web浏览器)和服务器间请求与响应的规则。HTTP协议以其简洁、易于扩展和高度灵活性成为了信息交换的基石,而它无状态的特性则为互联网通信的高效传输提供了保障。HTTP Server,全称为超文本传输协议服务器,是一种用于接收客户端请求并返回特定响应的应用程序。

weixin_42465140的博客 906

HAMi 核心模块与架构设计

HAMi 的架构设计是围绕 Kubernetes 生态系统构建的,通过扩展 Kubernetes 的调度能力和设备管理能力,为用户提供了高效、灵活的异构设备虚拟化和管理解决方案。

北斗云的博客 2552

netty实现http server端

在网上查了很多netty server端实现的例子,感觉还是有很多坑,这里记录一下自己的实现,也把自己踩的坑记录一下,利人利己。 首先创建一个server类,用来初始化netty的server端 public class NettyHttpServer { private Logger logger = LoggerFactory.getLogger(NettyHttpServer.class); private int inetPort; public NettyHtt

Limitedapm的博客 2249

Apache Hop集成Spring Boot实战:从配置到执行HPL文件

本文详细介绍了将Apache Hop集成到Spring Boot应用中的完整实战方案。通过配置核心依赖、初始化Hop环境、编写服务层逻辑,实现了在Java应用中程序化执行HPL管道文件,从而将可视化ETL能力无缝嵌入微服务架构,提升数据处理的自动化与可维护性。

blue42的博客 477

实现一个静态web服务器、http server

前言 不管是哪一种语言的web框架,其核心都是一致的,那就是以http协议为核心,围绕着http请求和http响应这两方面做文章。至于衍生的数据持久化(cookie session 数据库 等)只是存储手段罢了。 如果要理解好http协议,没有什么比实现一个自定义的http client客户端和http server服务器更好的方法了。 这篇博客博主就打算使用多种语言来做同一件事情:实现一个Htt...

衡与墨的博客 1791

GD32F4系列定时器正交译码器实战:用TIMER1读取旋转编码器信号(附完整代码)

本文详细介绍了GD32F4系列定时器正交译码器的实战应用,重点讲解如何使用TIMER1模块高效读取旋转编码器信号。内容涵盖硬件连接、定时器配置、方向判断与速度计算等关键环节,并提供了完整的代码实现和优化建议,帮助开发者快速掌握GD32微控制器在工业控制和消费电子领域的编码器接口设计。

weixin_29169505的博客 202

具身智能四大技术路线:VLA、大小脑、世界模型与强化学习

具身智能是机器人实现感知-决策-执行闭环的核心范式,其本质在于物理世界中的具身化交互能力。技术演进围绕如何高效建模环境、理解指令并生成鲁棒动作展开,衍生出四大主流路径:视觉-语言-动作(VLA)端到端学习、大小脑分层控制、世界模型驱动预测,以及强化学习原生策略优化。VLA强调多模态对齐与泛化能力,适合语义理解优先场景;大小脑架构兼顾实时性与可解释性,是工业落地的高可靠选择;世界模型追求内在物理模拟,代表长期认知跃迁方向;强化学习则扎根仿真试错,在力控、抓取等连续控制任务中展现强鲁棒性。本文聚焦这四大路线的技

weixin_32181267的博客 297

用基于epoll的reactor网络模型实现http server

最后再总结一下,webserver的核心代码就只有400行不到,在此基础上可以实现大多数的http请求功能,这个烂大街的C++项目之所以不受到面试官的欢迎,会因为确实比较简单,并且很多时候都不能称之为项目,更像是个demo,就算是网络层的实现,除了epoll之外,还可以用协程,io_uring,基于dpdk的用户态协议栈等,这些内容后续都会更新,将http认为是协议层,在此基础上比如说实现问卷调查等业务功能,才算是一个完整的项目。​ 清理:清空写缓冲区,状态重置为0,等待新的请求或关闭连接。

新人博主,多多关照 1745

智能手环心率检测不准?用STM32+MAX30102教你实现医疗级精度(含算法优化)

本文详细解析了如何利用STM32微控制器和MAX30102光学传感器实现医疗级精度的心率检测方案。通过硬件参数调校、ADC采集优化、运动伪影消除及深度学习算法改进,显著提升智能手环在静态和运动状态下的检测精度,误差可控制在±1.5bpm以内,满足医疗电子标准。

weixin_28335283的博客 530

C++实现简易版http server

1.实现了GET和POST方法的HTTP request和HTTP respond的构建和发送,使服务器可以完成基本通信功能。2.使用了线程池技术,使服务器可以一次接收更多的链接和加快了服务器处理数据的速度。3.实现了简易的CGI,使得服务器可以完成接收表单提交的数据,然后返回后台处理好的数据给用户。4.cgi功能分别实现了简易计算器,使用MySQL往database插入数据两个功能。5.实现了简易的错误处理,比如若访问的资源不存在,可以返回404 NOT FOUND。

m0_51641706的博客 2538

工业级24V电源保护电路深度解析:五重防护机制详解

自恢复保险丝(PPTC,Positive Temperature Coefficient)是一种过流保护元件✅可恢复:过流后自动恢复,无需更换⚡响应快:电流超标立即动作🔄多次使用:在额定范围内可反复使用第1层(F1):阻挡过流 → 物理熔断第2层(D3):吸收浪涌 → 能量泄放第3层(Q1):防止反接 → 逻辑阻断第4层(Q2/Q3):抵御过压 → 主动切断第5层(CR):平滑启动 → 时序控制设计哲学:"让每一级保护专注做好一件事"通过这篇文章,我们深入理解了:✅自恢复保险丝。

qq_58068673的博客 3588

MAC-H3C官网inode客户端下载安装

MAC-H3C官网inode客户端下载安装

兴趣是最好的老师 1万+

基于libevent库实现的http server示例

最近在工作当中接触到libevent库,用于http server端功能还是比较强大,特在此记录一笔,以备后面查漏补缺。首先是下载安装,直接去官网下载对应版本的安装包,解压安装即可,整理就不啰嗦了。 #tar #./onfigure #make #make install 完成安装之后,就可以开始编写自己的示例程序了,先上代码: #include &amp;amp;amp;amp;amp;amp;amp;amp;lt;stdio.h&amp;amp;amp;amp;amp;amp;am

李清的博客 1万+

33、密码学中的选择密文攻击与Cramer - Shoup加密方案

本文详细介绍了密码学中选择密文攻击的背景及其对Cramer-Shoup公钥加密方案的影响。该方案在决策Diffie-Hellman假设和抗碰撞哈希函数的基础上,能够有效抵御自适应选择密文攻击,并且其安全性无需依赖随机预言机模型。文章还分析了Cramer-Shoup方案的设计原理、加密与解密过程,以及其在标准假设下的安全性证明方法。此外,通过一系列相关练习,帮助读者进一步理解密码学概念如密文不可区分性、ElGamal加密、Goldwasser-Micali方案等。最后,文章展望了密码学的未来发展趋势,包括量子

vscode6remote的博客 100

lwip1.4.0之http server实现及POST 实现

lwip1.4.0之http server实现及POST 实现   一、HTTP SERVER的实现  lwip默认的http server 在 apps/httpserver_raw 主要核心文件为 fs.c fs.h(读取相关html相关资源), httpd.c httpd.h httpd_structs.h 为http协议核心文件   首先在LWIP协议栈正常运

pugu12的专栏 3832

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

errgroup 实现 http server启动和关闭

errgroup 实现 http server启动和关闭 文章目录errgroup 实现 http server启动和关闭问题描述实现方案具体过程实现 http server 的启动和关闭使用 chan 实现对中断的注册和处理通过 errgroup + context 的形式 管理 goroutine最终的实现小结References 问题描述 基于 errgroup 实现一个 http server 的启动和关闭 ,以及 linux signal 信号的注册和处理,要保证能够一个退出,全部注销退出。 实现

gxy_2016的博客 1866

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

lwip1.4.0 http server实现及POST 实现

lwip1.4.0之http server实现及POST 实现   一、HTTP SERVER的实现  lwip默认的http server 在 apps/httpserver_raw 主要核心文件为 fs.c fs.h(读取相关html相关资源), httpd.c httpd.h httpd_structs.h 为http协议核心文件   首先在LWIP协议栈正常运行后 需要在main

我的未来从这里开始 2万+

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【Spring AI】实现一个基于 Streamable HTTP 的 MCP Server

Spring AI 1.1.0新增流式HTTP支持,支持Spring Boot 3.4.x/3.5.x版本。文章介绍了如何通过Maven配置1.1.0-M1或SNAPSHOT版本依赖,并提供了application.yml的关键配置示例。核心代码展示了在启动类中注册工具服务的方法,以及通过@Service注解实现具体服务逻辑。最后验证了在IDEA通义灵码插件中可正常调用注册的工具服务。该功能为开发者提供了更灵活的AI服务集成方式。

不放糖的咖啡 1883

【esp8266】②esp8266实现http server服务

源码github地址:https://github.com/linzhongpaihuai/smartplug ①烧录方法:https://blog.youkuaiyun.com/u010177891/article/details/90348729 ②esp8266实现http server服务详解:https://blog.youkuaiyun.com/u010177891/article/details/10...

林中徘徊 6256

golang httpserver 关闭_Golang Http 学习(一) Http Server 的实现

Http 服务是基于 Tcp 的应用层的实现,也是最常见的网络协议之一。go 语言提供了丰富的http协议的实现包 net/http 包。http 是典型的C/S 架构(也是B/S架构),我们先从Server端入手,看看Http Server 是如何实现的。请求连接的管理golang 中, 连接的管理采用Reactor 模式。每个请求到达服务器之后,都会分配一个 goroutine 做...

weixin_30714077的博客 541

【Node.js】http-server 实现目录浏览服务

前言 node.js v12.18.2 用 node.js 实现目录浏览服务 前提,已经按照好Node.js http-server 官网:https://www.npmjs.com/package/http-server 下载安装http-server shell> npm install http-server -g npm WARN dirservice@1.0.0 No description npm WARN dirservice@1.0.0 No repository field.

sayyy的专栏 8859

python实现http服务器_用python编写http server(1)-简单服务器

对于wsgi来说,http server主要是处理了http请求,并提取了http请求的部分信息。http server最重要的还是通过多线程、多进程、协程等来处理并发请求。我们可以通过自己编写http server来熟悉整个请求处理流程,这里我们只关心tcp层。先来个最简单的serverimport socketclass SimpleServer():def __init__(self, ho...

weixin_40005437的博客 644
上一篇: 修改数据库mysql字符编码为UTF8
下一篇: c3p0详细配置
zljjava
博客等级 码龄15年 155粉丝 15原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值