最近学习了Java NIO技术,觉得不能再去写一些Hello World的学习demo了,而且也不想再像学习IO时那样编写一个控制台(或者带界面)聊天室.我们是做WEB开发的,整天围着tomcat.nginx转,所以选择了一个新的方向,就是自己开发一个简单的Http服务器,在总结Java NIO的同时,也加深一下对http协议的理解. 项目实现了静态资源(html.css.js和图片)和简单动态资源的处理,可以实现监听端口.部署目录.资源过期的配置.涉及到了NIO缓冲区.通道和网络编程的核心知识…
最近学习了Java NIO技术,觉得不能再去写一些Hello World的学习demo了,而且也不想再像学习IO时那样编写一个控制台(或者带界面)聊天室.我们是做WEB开发的,整天围着tomcat.nginx转,所以选择了一个新的方向,就是自己开发一个简单的Http服务器,在总结Java NIO的同时,也加深一下对http协议的理解. 项目实现了静态资源(html.css.js和图片)和简单动态资源的处理,可以实现监听端口.部署目录.资源过期的配置.涉及到了NIO缓冲区.通道和网络编程的核心知识…
最近学习了Java NIO技术,觉得不能再去写一些Hello World的学习demo了,而且也不想再像学习IO时那样编写一个控制台(或者带界面)聊天室.我们是做WEB开发的,整天围着tomcat.nginx转,所以选择了一个新的方向,就是自己开发一个简单的Http服务器,在总结Java NIO的同时,也加深一下对http协议的理解. 项目实现了静态资源(html.css.js和图片)和简单动态资源的处理,可以实现监听端口.部署目录.资源过期的配置.涉及到了NIO缓冲区.通道和网络编程的核心知识…
最近学习了Java NIO技术,觉得不能再去写一些Hello World的学习demo了,而且也不想再像学习IO时那样编写一个控制台(或者带界面)聊天室.我们是做WEB开发的,整天围着tomcat.nginx转,所以选择了一个新的方向,就是自己开发一个简单的Http服务器,在总结Java NIO的同时,也加深一下对http协议的理解. 项目实现了静态资源(html.css.js和图片)和简单动态资源的处理,可以实现监听端口.部署目录.资源过期的配置.涉及到了NIO缓冲区.通道和网络编程的核心知识…
最近学习了Java NIO技术,觉得不能再去写一些Hello World的学习demo了,而且也不想再像学习IO时那样编写一个控制台(或者带界面)聊天室.我们是做WEB开发的,整天围着tomcat.nginx转,所以选择了一个新的方向,就是自己开发一个简单的Http服务器,在总结Java NIO的同时,也加深一下对http协议的理解. 项目实现了静态资源(html.css.js和图片)和简单动态资源的处理,可以实现监听端口.部署目录.资源过期的配置.涉及到了NIO缓冲区.通道和网络编程的核心知识…
学习Netty框架以及相关源码也有一小段时间了,恰逢今天除夕,写篇文章总结一下.Netty是个高效的JAVA NIO框架,总体框架基于异步非阻塞的设计,基于网络IO事件驱动,主要贡献在于可以让用户基于Netty提供的API快速开发高性能.高可靠性的网络应用.这篇文章主要是介绍Netty框架的基础技术——JAVA NIO.这时候可能会有同学会有点小疑问,是异步IO(AIO)么?然而并不是,虽然JDK7也提供了异步IO(AIO)的接口,但是Netty曾经尝试过某个小版本,但是效果和NIO相比并没有什…
各位朋友大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com.在这个系列文章的第一篇中,我们着重认识和了解了HTTP协议,并在此基础上实现了一个可交互的Web服务器,即当客户端访问该服务器的时候,服务器能够返回并输出一个简单的“Hello World”.现在这个服务器看起来非常简陋,为此我们需要在这个基础上继续开展工作.今天我们希望为这个服务器增加主页支持,即当我们访问这个服务器的时候,它可以向我们展示一个定制化的服务器主页.通常情况下网站的主页被定…
.Net Core 跨平台开发实战-服务器缓存:本地缓存.分布式缓存.自定义缓存 1.概述 系统性能优化的第一步就是使用缓存!什么是缓存?缓存是一种效果,就是把数据结果存在某个介质中,下次直接重用.根据二八原则,80%的请求都集中在20%的数据上,缓存就是把20%的数据存起来,直接复用.Web系统缓存主要分为客户端缓存.CDN缓存.反向代理缓存及服务器缓存,而服务器缓存又分类本地缓存.分布式缓存.本节将给大家分享.Net Core 跨平台开发 服务器缓存开发实战. 2.项目创建-ShiQuan.…
上一篇文章我介绍了如果动态加载dll文件来更新程序 一步一步开发Game服务器(三)加载脚本和服务器热更新 可是在使用过程中,也许有很多会发现,动态加载dll其实不方便,应为需要预先编译代码为dll文件.便利性不是很高. 那么有么有办法能做到动态实时更新呢???? 官方提供了这两个对象,动态编译源文件. 提供对 C# 代码生成器和代码编译器的实例的访问. CSharpCodeProvider 提供一下方法加载源文件, // 基于包含在 System.CodeDom.CodeCompileUnit…
原文链接 Go(Golang.org)是在标准库中提供HTTP协议支持的系统语言,通过他可以快速简单的开发一个web服务器.同时,Go语言为开发者提供了很多便利.这本篇博客中我们将列出使用Go开发HTTP 服务器的方式,然后分析下这些不同的方法是如何工作,为什么工作的.    在开始之前,假设你已经知道Go的一些基本语法,明白HTTP的原理,知道什么是web服务器.然后我们就可以开始HTTP 服务器版本的著名的“Hello world”. 首先看到结果,然后再解释细节这种方法更好一点.创建一个叫…
java开发邮件服务器的接收模块 用java建立socket服务端,监听端口25,实现SMTP协议.即可完成邮件服务器的接收模块. 这里要注意的是,SMTP协议其实可以分为两种.一种是你用手机.PC等客户端发邮件到邮件服务商的服务器的时候用的SMTP协议,这一类是需要登录验证的.一种是邮件服务商之间传递邮件的SMTP协议,此类协议是不需要登录的.比如你用Foxmail上你的QQ邮箱发送了一封邮件到163的邮箱.过程是这样的: 邮件从Foxmail通过SMTP协议发送到QQ邮箱的服务器. QQ邮箱…
本文转载自 http://blog.csdn.net/cutesource/article/details/6192016 如何正确使用NIO来构架网络服务器一直是最近思考的一个问题,于是乎分析了一下Jetty.Tomcat和Mina有关NIO的源码,发现大伙都基于类似的方式,我感觉这应该算是NIO构架网络服务器的经典模式,并基于这种模式写了个小小网络服务器,压力测试了一下,效果还不错.废话不多说,先看看三者是如何使用NIO的. Jetty Connector的实现 先看看有关类图: 其中: S…
问题一:vs2015 无法连接到已配置的开发web服务器 最靠谱方法如下:(和防火墙开启无关联, 注册表增加什么键值无关联 , 缺失asp.net core.Dll文件无关联 ) 分析,因为前提是你的vs2015能用,并且新建asp.net程序可以正常启动 解决方案:出现此问题是由于你的项目是从别的地方拷贝过来,在项目根目录中有个.vs文件夹 ,手工删除:再启动项目,即恢复正常启动.问题二:无法向会话状态服务器发出会话状态请求.请确保 ASP.NET State Service (ASP.NET…
学习GO第一天,自我感觉可麻利的开干了-GO语言配置.开发.服务器部署 第一步下载 go sdk https://golang.org/dl/ https://storage.googleapis.com/golang/go1.7.4.linux-amd64.tar.gz 解压go到/usr/local 目录下 tar -C /usr/local -xzf go1.7.4.linux-amd64.tar.gz 第二步安装IntelliJ IDEA 2016.2.4(64) linux环境设置 1…
VS2013每次启动项目调试好好的,今天出现了提示“提示无法连接到已配置的开发web服务器“,使用环境是本地IISExpress,操作系统为windows10,之前也出现过就是重启电脑又好了,这次是刚开机启动VS就报这个错误.百度搜索很多都是说端口占用.关闭防火墙等,但都不能解决,只能根据系统提供的错误信息再查找解决方法,还是在微软的官网上找到解决方法. 首先在事件管理器中找到了错误提示信息,提示无法绑定端口,根据错误去查找一般都是找到端口占用.防火墙等,但都不是这个原因,于是尝试使用事件ID去…
如何正确使用NIO来构架网络服务器一直是最近思考的一个问题,于是乎分析了一下Jetty.Tomcat和Mina有关NIO的源码,发现大伙都基于类似的方式,我感觉这应该算是NIO构架网络服务器的经典模式,并基于这种模式写了个小小网络服务器,压力测试了一下,效果还不错.废话不多说,先看看三者是如何使用NIO的. Jetty Connector的实现 先看看有关类图: 其中: SelectChannelConnector负责组装各组件 SelectSet负责侦听客户端请求 SelectChannelE…
近期,有同事咨询如何在Fragment中使用Cordova,看了下Cordova源码,官方并没有提供包含Cordova Webview的Fragment,以供我们继承. 上网查询了一下,也有几篇文章讲解Fragment中如何使用Cordova,不过Cordova逻辑与Fragment逻辑耦合太深,不太适用于常规项目开发. 通过分析CordovaActivity的源码实现,我们只需要将Cordova封装成自定义View就可以了.后面的演示,咱们还是基于之前的工程吧,代码会在后面分享给大家的. Co…
IdHTTPServer开发https服务器 该篇经验同样适用于DATASNAP和UNIGUI,因为它们都基于INDY10. 1)需要TIdServerIOHandlerSSLOpenSSL控件 2)设置属性 3)OPENSSL生成自签名证书 X.509证书包含三个文件:key,csr,crt. key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密 csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名 crt是由证书颁发机构(CA)签名后的证书,…
VUE+Element 前端应用,比较不错的一点就是界面组件化,我们可以根据重用的指导方针,把界面内容拆分为各个不同的组合,每一个模块可以是一个组件,也可以是多个组件的综合体,而且这一个过程非常方便.组件封装的目的就是为了能够更加便捷.快速的进行业务功能的开发.组件(component)是vue的最强大功能之一,组件可以实现一些类似功能的复用及与其它业务逻辑的解耦.本篇随笔介绍前端框架中常用到的一些组件封装处理,用于简化界面.隐藏实现细节的目的. 1.组件封装的需要 在我们开发一个主要界面的时候…
https://code.google.com/archive/p/phpwebsocket/source/default/source The WebSocket API (WebSockets) - Web APIs | MDNhttps://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API WebSockets - Web API 接口参考 | MDNhttps://developer.mozilla.org/zh-CN/doc…
Response Assertion(响应断言) 响应断言是对服务器的响应数据进行规则匹配. Name(名称):可以随意设置,最好有业务意义. Comments(注释):可以随意设置,可以为空. Apply to(应用范围): Main Sample and sub-samples:匹配范围包括当前父取样器并覆盖至子取样器. Main sample only:仅匹配当前父取样器 Sub-samples only:仅匹配子取样器 Jmeter variables Name to use:支持对Jm…
原文:PHP-微信公众平台开发-接收用户输入消息类型并响应 <?php // 该代码块用于接收用户消息,根据用户输入的消息类型进行判断,文本,图片,视频,位置,链接,语音等,并取得值,处理后给予响应. // 接收用户消息 // 微信公众账号接收到用户的消息类型判断 // define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); if (!isset($_GET['echostr']…
关于ASP.NET中用Response.Write()方法响应导致页面字体变大的解决办法     最近研究了ASP.NET,发现一个问题,比方说在页面里面有个Button,要点击以后要打开新窗口,而且新窗口的URL是根据用户选择结果动态产生的.LinkButton的代码这样写:    protected void ServiceManHistoryButton_Click(object sender, EventArgs e)    {        Response.Write("<sc…
各位朋友大家好,我是秦元培,欢迎大家关注我的博客.从今天起,我将开始撰写一组关于HTTP服务器开发的系列文章.我为什么会有这样的想法呢?因为人们对Web技术存在误解,认为网站开发是Web技术的全部.其实在今天这样一个时代,Web技术可谓是无处不在,无论是传统软件开发还是移动应用开发都离不开Web技术,所以在我的认识中,任何使用了HTTP协议实现数据交互都可以认为是Web技术的一种体现,而且当我们提及服务器开发的时候,我们常常提及Java或者PHP.可是这些重要吗?不,在我看来服务器开发和语言无关…
 各位朋友大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是http://qinyuanpei.com.在我们这个Web服务器有了一个基本的门面以后,我们是时候来用它做点实际的事情了.还记得我们最早提到HTTP协议的用途是什么吗?它叫超文本传输协议啊,所以我们必须考虑让我们的服务器能够接收到客户端传来的数据.因为我们目前完成了大部分的工作,所以对数据传输这个问题我们这里选择以最简单的GET和POST为例来实现,这样我们今天的重点就落实在Get和Post的实现这个问题上来.而从原理上来讲,无…
时隔这么久 才再一次的回归正题继续讲解游戏服务器开发. 开始讲解前有一个问题需要修正.之前讲的线程和定时器线程的时候是分开的. 但是真正地图线程与之前的线程模型是有区别的. 为什么会有区别呢?一个地图肯定有执行线程,但是每一个地图都有不同的时间任务.比如检测玩家身上的buffer,检测玩家的状态值.这种情况下如何处理呢?很明显就需要定时器线程. 我的处理方式是创建一个线程的时候根据需求创建对应的 timerthread 直接上代码其他不BB using System; using System.…
IOS中有许多网络请求的函数,同步的,异步的,通过delegate异步回调的. 在做一个项目的时候,上网看了很多别人的例子,发现都没有一个简单的,方便的异步请求的封装例子.我这里要给出的封装代码,是异步的,post的请求方式.通过ios的原生函数简单封装.通过这个封装可以方便的访问http服务器,获取数据,也可以容易的异步加载网络图片. 首先新建一个httpHelper类,在这个类里进行封装,封装的函数名称就叫做post,参数有请求的地址url,请求的参数params,返回数据后回调的函数blo…
第一部分:基础配置 第一步:注册微信公众账号 如果开发测试阶段可以打开测试链接地址,注册测试公众号.测试账号除了不能与正式账号通信外其他什么高级接口的都可以实现. 测试号管理地址:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 账号开通成功后系统会分配两个账号信息:appID.appsecret作为此账号的标识. 第二步:接口配置信息 这里的接口配置主要为保证微信能与你所建的站点进行数据交互,并且数据的传递要符合规则.…
最近需求需要开发一款 HTTP ,然后由于先前接触过Qt,就直接用Qt写HTTP服务器了,也是为了当作练手,要不然是直接上HTTP框架的. 后端用C++ Qt框架 前端为了练手 当然是纯生的 js html css 具体的HTTP 实现过程我就不累赘描述了,这个Http协议解析基本上大部分人都知道原理. 主要是记录一下开发中遇到的各种问题. 首先最开始开发的时候,一路顺风,我的设计模式是 层次 设计模式,一层层独立互不相干互不干涉.严格的只管理好自己的所在层. 数据包是一层层往上传输,到达 Lo…
下午那篇博客我们讲到了Mina的客户端的开发,如果还有没看过的同学可以看一下,我是传送门.现在,我们来学习一下,Mina的服务器的开发. 一.首先看一下,我的服务器的代码图片:  服务器代码我是在MyEclipse下写的. 二.服务器的整体思路:(同客户端差不多) 首先,产生一个socket接收对象(SocketAcceptor),用于接收客户端的连接请求: 然后,对这个接收器添加我们的I/O过滤器(SSL加密.日志过滤器.编码过滤器等,这里注意,如果添加SSL过滤器,那么一定要第一个添加,否则…