Go语言类库中,有两个官方的服务器框架,一个HTTP,一个是RPC.使用这个两个框架,已经能解决大部分的问题,但是,也有一些需求,这些框架是不够的,这篇文章,我们先分析一下HTTP 和 RPC服务器的特点, 然后结合这两个服务器的特点,我实现了一个新的服务器,这个服务器非常适合客户端和服务器端有大量交互的情况. HTTP服务器的特点: HTTP的请求 和 响应的周期如下: 对于一个HTTP 长连接,一个请求必须等到一个响应完成后,才能进行下一个请求.这就是http协议最本质的特点,是串行化的.而…
Ktor 是一个使用 Kotlin 以最小的成本快速创建 Web 应用程序的框架. Ktor 是一个用于在连接系统(connected systems)中构建异步服务器和客户端的 Kotlin 框架.它由 Kotlin 团队创建,因此,它充分利用了 Kotlin 的语言特性,为开发者提供出色的体验和运行时性能. import io.ktor.server.netty.* import io.ktor.routing.* import io.ktor.application.* import io…
//结构:select 子句 [into 子句] from 子句  [where 子句] [group by 子句]  [having 子句] [order by 子句] select  dept_code,count(*) from oh_corp_infowhere create_date>'2006-01-01' group by dept_code having count(dept_code)>1  order by dept_code //查询前百分之N的数据 select  to…
WebSocket 异步风格服务器 WebSocket\Server 继承自 Http\Server,所以 Http\Server 提供的所有 API 和配置项都可以使用. # ws_server.php class WebSocket { public $server; public function __construct() { // 创建websocket服务器对象,监听0.0.0.0:9502端口 $this->server = new Swoole\WebSocket\Server(…
1.创建ajax对象 <script type="text/javascript"> //创建AJAX异步对象 function createAJAX(){ var ajax = null; try{ //如果IE5=IE12的话 ajax = new ActiveXObject("microsoft.xmlhttp"); }catch(e1){ try{ //如果是非IE的话 ajax = new XMLHttpRequest(); }catch(e2…
HTTP 异步风格服务器 # http_server.php $http = new Swoole\Http\Server("0.0.0.0", 9501); // 设置服务器运行参数 $http->set(array( 'daemonize' => 1, // 作为守护进程运行,需同时设置log_file 'log_file' => '/www/logs/swoole.log', // 指定标准输出和错误日志文件 'worker_num' => 4, // 设…
UDP 异步风格服务器 # udp_server.php // 创建 UDP 服务器对象,监听0.0.0.0:9502端口,类型为SWOOLE_SOCK_UDP $serv = new Swoole\Server("0.0.0.0", 9502, SWOOLE_PROCESS, SWOOLE_SOCK_UDP); // 设置服务器运行参数 $serv->set(array( 'daemonize' => 1, // 作为守护进程运行,需同时设置log_file 'log_f…
TCP 异步风格服务器 异步风格服务器通过监听事件的方式来编写程序.当对应的事件发生时底层会主动回调指定的函数. 由于默认开启协程化,在回调函数内部会自动创建协程,遇到 IO 会产生协程调度,异步风格服务器无法保证调度顺序,所以在遇到并发时无法保证事件执行顺序. # server.php // 创建 TCP 服务器对象,监听 0.0.0.0:9501端口 $serv = new Swoole\Server("0.0.0.0", 9501); // 设置服务器运行参数 $serv->…
一.关于基础的程序的实现 刚开始的时候程序是这样实现的: // Hello package main import ( "database/sql" "fmt" "io/ioutil" "log" "net/http" "strings" "time" _ "github.com/Go-SQL-Driver/MySQL" ) func main()…
/* sockclnt.c*/ #include <stdio.h>#include <string.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h> /*for struct sockaddr_in*/#include <signal.h> #define SVR_IP      "…