sim

C++ 网络服务器框架
授权协议 BSD-3-Clause
开发语言 C/C++
所属分类 程序开发、 高性能网络开发库
软件类型 开源软件
地区 国产
投 递 者 佴普松
操作系统 Linux
开源组织
适用人群 未知
 软件概览

sim 是一个简单的 C++ 网络服务器框架。使用这个框架,可以帮助你快速上手编写自定义的 C++ 服务器应用,避免繁琐的网络 IO 和连接管理等细节。

Sim 的报文协议设计得非常巧妙, 使得你可以用 nc/telnet 等工具配置进行调试, 快速开发。例如, 你可以用 nc 连接到 Sim 框架编写的服务器, 然后输入:

ping hello world!

发给服务器请求。

demo:

#include "sim/sim.h"

class MyHandler : public sim::Handler
{
public:
	virtual sim::HandlerState proc(const sim::Request &req, sim::Response *resp){
		std::string cmd = req.msg.type();
		if(cmd == "ping"){
			resp->msg.add("ok");
			resp->msg.add("pong");
		}else{
			resp->msg.add("ok");
			resp->msg.add(cmd);
		}
		return this->resp();
	}
};

int main(int argc, char **argv){
	const char *ip = "127.0.0.1";
	int port = 8800;
	sim::Server *serv = sim::Server::listen(ip, port);
	if(!serv){
		log_fatal("%s", strerror(errno));
		exit(0);
	}
	log_info("server listen on %s:%d", ip, port);

	MyHandler handler;
	serv->add_handler(&handler);

	serv->loop();
	return 0;
}

 

  • 一、概述   移动电话机与SIM卡共同构成移动通信终端设备。无论是GSM系统还是CDMA系统,数字移动电话机用户在“入网”时会得到一张SIM卡(SubscriberIdentityModule)或UIM卡(UserIdentity Module)。SIM卡是一张符合GSM规范的“智慧卡”,可以插入任何一部符合GSM规范的移动电话中,实现“电话号码随卡不随机的功能”,而且通话费用自动计入持卡用户的账

 相关资料
  • Twisted Twisted 是一个事件驱动的网络引擎。他可以被用来构建多种网络协议的应用程序,包括:HTTP 服务器和客户端;使用 SMTP、POP3、IMAP 或者 SSH 协议测应用程序和 IM (即时消息)等应用 更多。 PyZMQ PyZMQ 是 ZeroMQ 的 Python 绑定。ZeroMQ 是一个高性能的异步消息库,它的一个很大的优势在于其可以被用作一个消息队列而不需要消息代理

  • 当使用uWSGI网络服务器搭配geventd的时候,Socket.IO服务器的时候,可以利用uWSGI原生的WebSocket支持。 一 个配置和运用uWSGI服务器完整的解释超出了本文的论述范围。uWSGI服务器确实是一个比较复杂的,它提供了大量而又详尽的设置选项。它必须使用 Websocket和SSL编译才能支持WebSocket传输。作为介绍,下面的命令启动了一个uWSGI服务器作为范例,这

  • 网络服务提供弹性公网IP、NAT网关、DNS解析等功能。 弹性公网IP 弹性公网IP(Elastic IP)是一种NAT IP,通过与虚拟机绑定,将弹性公网IP与虚拟机的私有地址进行NAT映射,实现虚拟机与公网之间的通信。 NAT网关 NAT网关能够为公有云VPC网络中虚拟机提供IP地址转换功能,使虚拟机可以访问外网或提供互联网服务。 DNS解析 DNS解析用于将简单好记的域名解析为计算机用于通信

  • 问题内容: 我想用纯Java实现我自己的Web服务器,该Web服务器应仅支持静态资源(即html,js,css,图片,电影等)。 您能推荐有关如何实现这种事情的教程或文章吗?我应该使用几个进程或线程池,还是应该考虑像NodeJS这样的面向循环事件的对象? 我知道有一些免费的网络服务器可以完全满足我的需求,但我想以此为自己的锻炼。 问题答案: 我建议您熟悉HTTP请求格式http://datatra

  • Reorganized by Murray Stokely. 30.1. 概要 本章将覆盖某些在 UNIX® 系统上常用的网络服务。话题将会涉及如何安装、配置、测试和维护多种不同类型的网络服务。本章节中将提供大量配置文件的样例,期望能够对您有所裨益。 在读完本章之后,您将会知道: 如何管理 inetd。 如何设置运行一个网络文件系统。 如何配置一个网络信息服务器以共享用户帐号。 如何通过DHCP自

  • Server Types Server Objects Implementing a Server Request Handlers Echo Example # socketserver_echo.py import logging import sys import socketserver logging.basicConfig(level=logging.DEBUG,

  • 我一直试图让spark在我的本地机器上运行kubernetes。然而,我在试图理解服务网络是如何工作的方面遇到了一个问题。 我在笔记本电脑上用容器运行kubernetes: null kubectl create-f Kubernetes/examples/spark/spark-master-controller.yaml kubectl create-f Kubernetes/examples

  • 主要内容:一、网络的整体架构,二、服务端的流程,三、源码分析,四、总结一、网络的整体架构 在前面介绍Redis的整体流程时,初步介绍过服务端的网络代码,现在先看一下整体的架构: 1、服务处理(EPoll) 如果没有接触过网张编程的,特别是对LINUX上的编程模型一点都不清楚的。这块可能是个麻烦.Redis为了保证在不两同的平台的高效可行的运行,采用了在不同平台自适应使用不同的网络编程模型,这其中包括一些可能比较专用的平台,如Solaries10中的 evport,m