1.初始化例子m_fd=nn_socket(AF_SP,NN_SURVEYOR);if(m_fdtempList;while(1){//chardata[128]={0};char*buf=nullptr;intbytes=nn_recv(m_fd,&buf,NN_MSG,0);if(bytes=0){++count;QByteArraytemp(buf,bytes);tempList<
高性能通信库——nanomsg(含交叉编译)
Is Fang
网络java服务器
一、nanomsg介绍NanoMsg是一个Socket的通讯库,使用C语言编写实现的,这样就可以适用于多种操作系统,而且几乎不需要什么依赖,可扩展并且能易于使用。Nanomsg提供了几种常见的通信模式(也称为“可扩展性协议”)是构建分布式系统的基本框架。通过组合它们,可以创建广泛的分布式应用程序。nanomsg高性能通信库_NanoMsg框架|NanoMsg的简介使用nanomsg可以实现线程间通
C++网络库探索(二)
平头哥阿威
网络编程
重要信息源https://blog.csdn.net/xiaoxiaoyeyaya/article/details/42541419https://stackoverflow.com/questions/118945/best-c-c-network-library/118968#118968开源网络库(补充)网络库语言OS特点优点缺点适合干啥备注nanomsgAnyAnyZMQ的C语言改造版本线
Linux 使用nanomsg库进行进程间通信
讳疾忌医丶
Linux系统编程linux网络运维进程间通信
文章目录1、下载安装2、使用2.1、服务端2.2、客户端2.3、编译1、下载安装github地址:https://github.com/nanomsg/nanomsg解压包1、tarxvfnanomsg.tar.gz进入目录2、cdnanomsg创建编译目录build,并移动到build目录3、mkdirbuildcdbuild编译安装4、cmake..-DCMAKE_INSTALL_PREFIX
[译]nanomsg和ZeroMQ的区别
xian_wwq
c网络c++开发nanomsgZeromq
原文地址:https://nanomsg.org/documentation-zeromq.html自这篇文档完成以后,Nanomsg和ZeroMQ都已经发生了很大的变化。尽管如此,本文档从ZeroMQ和Nanomsg原创作者的角度来阐述,仍有助于理解nanomsg的历史变更。授权Nanomsg库基于MIT授权,这就意味着Nanomsg不同于ZeroMQ,你可以修改源代码,可以作为专利产品以不同的
qt加载Osgearth
枫影竹韵
OSGqt开发语言
1环境搭建1.Linux(1条消息)在Windows第一次使用使用vcpkg来安装三方库,例如nanomsg、nng、libpqxx_windowsvcpkg安装_Shnosukeee的博客-CSDN博客2windowsWin10+VS2017+Qt5.9.9+OSG/OSGEarth环境搭建-基于vcpkg-hik_wxy-博客园(cnblogs.com)2加载Qt5加载OsgEarth3.1_
ubuntu 16.04 安装nanomsg和nnpy
_AlphaBaby_
在最开始安装的时候遇到了很多的坑,所以这里给大家讲一下,也给自己记录下这个坑的过程。首先我们要知道在安装东西的时候一般都还是没权限或者是缺少了相关的依赖依赖才会导致安装不上首先安装nanomsg下去github上把nanomsg下载下来解压压缩包:tar-zxvf1.1.5.tar.gz进入解压出来的目录cdnanomsg-1.1.5/安装相应的工具sudoapt-getinstallgccpyt
nanomsg使用记录--编译环境构建
yanshaowen
1简介nanomsg是一个socketlibrary,它提供了几种常见的通信模式,为了能使网络层快速、可扩展并且能易于使用。c版本的zeromq(c++)。官方地址github文档地址2java版本环境构建nanomsg的java库有两个jnano和jnanomsg,其中jnano比较早的库,现在应该不维护了,jnanomsg支持ClojureandJava。文档地址。2.1系统相关window1
nanomsg使用记录--java版
yanshaowen
1PAIR模式Pair.javapackagepair;importnanomsg.exceptions.IOException;importnanomsg.pair.PairSocket;/***Createdbywenshaoon2018/3/27.*/publicclassPair{privatestaticStringurl="tcp://127.0.0.1:7789";publicsta
nanomsg 1.1.5 源代码分析 (一)
RonZheng2010
1.nn_fsm和actor类在nanomsg中,可以向nn_fsm派生类的对象发送event,驱使它工作,并转变状态。这里(不是nanomsg的文档)称这种类为actor类。nn_fsm包括指向event处理函数的指针,而actor类应该实现自己的处理函数,并用它初始化nn_fsm的指针。下图是传输协议为IPC时,“接受连接”过程涉及的主要类。其中nn_ibpc、nn_aip和nn_usock等
nanomsg 1.1.5 源代码分析 (四)
RonZheng2010
1.协议中的数据结构1.1nn_chunknn_chunk对分配的内存空间做记录工作。nn_chunk_alloc()其实并不返回nn_chunk实例。它分配一块内存,以便容纳nn_chunk结构和真正的数据。nn_chunk在内存开始位置,真正的数据紧接在其后(准确的说法是中间还隔着两个分割符)。返回给调用者的是真正数据的地址。1.2nn_chunkrefnn_chunkref用来保存一块内存空
在Windows第一次使用使用vcpkg来安装三方库,例如nanomsg、nng、libpqxx
Shnosukeee
gitgithubc++
从安装git开始记录够早了吧需要从github上找三方库来使用,看了许多教程后决定为后来者写点简单的流程。记得先装git,安装git教程如下:到官网下载git添加链接描述点击下载然后安装。安装完后会有一系列的应用可以使用我们主要用的是GitBash。安装vcpkgvcpkg是微软的包管理工具,可以直接下载三方库在自己的项目中使用,几行代码就能搞定,非常好用第一步安装vcpkg:在gitbash中输
【动手项目二】用nanomsg代替传统的TCP Socket是什么样的体验?
cymatics
今日无事。其实我想说,路易十六在7月14日的日记里也写的是今日无事所以,我动手实现了一个小功能。实现一个端对端通信的程序。一边是数据生产方,不停的生产图片地址和描述信息,一端是数据消费端,从解析到的网络地址下载图片,连同描述信息一块呈现出来。技术实现:数据消费端是要呈现图片和描述信息的,那就用Qt吧,有空了试试Electron。数据生产端应该是能周期性发数据的,方便性能测试,就选nodejs吧。对
Nanomsg简单使用和集成 IOS版
Macalk
如果考虑到使用nanomsg,说明你对它还是有些了解的。在这里就不在详细的介绍它的功能和优缺点,网上的资料特别多,我们只对iOS开发中的简单使用做一些介绍:1、github地址:https://github.com/reqshark/nanomsg.ios(大神所著,默哀、感谢)2、集成到项目:(1)打开终端:cd项目根文件(2)输入以下命令,等待结束gitclonehttps://github.
为什么ZeroMQ不应该成为你的第一选择
Rain
mq
TylerTreat是一名软件开发人员,他近日发表了一篇博文《为什么ZeroMQ不应该成为你的第一选择》。文中,TylerTreat对nanomsg和ZeroMQ进行了比较。nanomsg是一个套接字库,提供了多种常见的通信协议,其目标是使网络层更快、更具扩展性、更容易使用。它用C进行了彻底地重写,可以说是对ZeroMQ的重建。它构建在ZeroMQ的可靠性能之上,同时又提供了若干重要的改进。而且,
【3.工程开发】-mq-ZeroMQ/nanomsg
梦想家
zeromq
在流数据转发时,需要消息转发系统,整体文章见:https://segmentfault.com/a/11...。zmq其实更是一种网络包,可以应用于:N-M的网络路由,发布订阅(低成本不用代理的情况下,代理不能单点)。并发原子通信(storm一个任务一个线程,线程间通信,管道模式,无锁队列=》后来storm改用了netty)。简单的消息队列(队列满就不能发了),不保证可靠性。官方:http://z
Fast, Scalable Networking in Go with Mangos-nanomsg in go
taolinke
linux杂
packagemainimport("fmt""os""time""github.com/gdamore/mangos""github.com/gdamore/mangos/protocol/pub""github.com/gdamore/mangos/protocol/sub""github.com/gdamore/mangos/transport/ipc""github.com/gdamore
nanomsg使用笔记-1
taolinke
linux杂
目前大致的使用情况是使用pollfd,begin:nn_repnonn_pushnonn_pubcanoutnn_reqcanoutnn_surveycanincanout但是如果没有survey就去recv,会报错EFSM.使用nn_errno和nn_strerror打印错误信息NN_SNDBUF就是so_sndbufNN_RCVMAXSIZE是设置每个message的最大包大小NN_SNDTI
Nanomsg使用说明 Pipeline (A One-Way Pipe)
Tyran_U
C++
最近在看一个项目,里面有很多第三方库,里面有一个就是Nanomsg。不知道为什么我对这个库的名字和他的主页特别有感觉嘿嘿!介于这个项目是我今年主力要看完并且改造的项目,所以我决定把他的第三方库都学习一下,之后还会有rxcpp这个特别刺激。。。。。。这个系列主要是讲使用,具体原理,不考究。原理牵涉到很多很多很多别的东西。回归主题Nanomsg这是一个可以跨进程(当然也可以单进程)的通信库,而且看下来
海思移植nanomsg
star871016
海思嵌入式
海思移植nanomsg修改CMakeLists.txt增加海思支持#setcross-compiledsystemtype,it'sbetternotusethetypewhichcmakecannotrecognized.SET(CMAKE_SYSTEM_NAMELinux)SET(CMAKE_SYSTEM_PROCESSORarm)#whenhisliconSDKwasinstalled,to
nanomsg笔记--stl跨平台的实现
Automannnn
c++
因为自己没有在实际的场景中用过消息队列,因此长期都比较好奇。这段时间正好有空余时间看一看相关的源码。在网络上搜索了一圈,加上最近在学习c++,便找到了一个叫做ZeroMQ的项目,听说挺出名的,可惜没找到地址,不过找到了它的作者用c重构的版本——nanomsg。于是就开始操作了。这个项目蛮大,看了时间跨度在两年多,支持windows与unix系统。由于我并没有在linux使用过c++,所以对于pos
第一个nanomsg的程序
qilimi-1
通讯
这是我学习nanomsg的第一个程序,主要还是模仿nanomsg的例子写得,这里使用的模式为NN_PAIR,即一对一通信这里实现了一个客户端和一个服务端。本人英文比较差,很多翻译都不准确,见谅首先我们先来看一下,程序中会调用到的函数,这里我推荐大家想要学习的可以去看nanomsg的官方文档,讲得挺详细的。1.nn_socketintnn_socket(intdomain,intprotocol);
nanomsg的协议
qilimi-1
通讯
nanomsg的前身是zeromsg,zeromq估计很多人都见过,是一个消息队列,而nanomq的模式很多和zeromq是类似的,我们这里就简单的解析一下(如果和官方不相同,请以官方为准)。1.One-to-oneprotocol一对一协议,这个就是字面意思,只能一对一通信,为通讯双向。关键字:NN_PAIR。2.Request/replyprotocol请求/回复协议,由请求端发起请求,然后等
四种环境下编译nanomsg库
onlyshi
Qt
VS2013编译生成nanomsg库文件因为工作中用到了nanomsg,又需要编译成库来使用,发现网上资料很少,所以做此记录。编译准备,CMake工具软件和下载好的nanomsg源码包。我的是CMake3.6.2,nanomsg是1.0.0版本。解压你的nanomsg。打开CMake,添加源码目录,和编译构建目录添加编译环境默认是生成动态库,但如果要生成静态库,就勾选静态库选项,然后点击Gener
nanomsg-python 安装在Windows下的流程
norsd
Python
在本机安装x64的nanomsg:https://blog.csdn.net/norsd/article/details/81285104从GitHub下载nanomsg-python的zip文件:https://github.com/tonysimpson/nanomsg-python把zip文件解压到c:\nanomsg-python-master以Administrator权限打开Visua
Nanomsg 安装在windows下的流程
norsd
C++/CLI网络相关VCwindows
从GitHub上下载ziphttps://github.com/nanomsg/nanomsg官方Readme.md中关于Windows的安装方法很简单,如果你完全照做可能编译后是一个32bit的nanomsghttps://github.com/nanomsg/nanomsg/issues/859有人提出了解决方法:mkdirbuildcdbuildcmake-G"VisualStudio14W
nanomsg.nng 在windows下的安装
norsd
windowsnng
需要cmake版本号大于等于3.1,个人使用了VisualStudio的Nativetoolscommandprompt(分为x86,x64分别用于Build各自构架的nng)github源https://github.com/nanomsg/nng下载压缩包解压缩进入文件夹按照指导输入:mkdirbuildx64cdbuildx64cmake-G“Ninja”…ninjaninjatestnin
nanomsg的使用与分析
Michaelzhangyy
本文对nanomsg进行系统讲解(socket不同类型的区别):1.pull/push和rep/req的区别:对于pull/push,客户端为push,其send数据后,server端会立即接收到对于rep/req,客户端为req,其send数据后,客户端并不会立即发送给client,客户端必须再执行recv调用后,才会真正send数据2.pair和req/req区别:pair中,客户端只要sen
nanomsg编译与测试
andylauren
嵌入式系统移植
官网https://nanomsg.org/源码下载https://github.com/nanomsg/nanomsg/releases我使用的版本nanomsg-1.1.4.tar.gz下载地址:https://download.csdn.net/download/andylauren/10682975编译源码1、解压源码包rt@ubuntu:~/nano$tarxvfnanomsg-1.1.
插入表主键冲突做更新
a-john
有以下场景:
用户下了一个订单,订单内的内容较多,且来自多表,首次下单的时候,内容可能会不全(部分内容不是必须,出现有些表根本就没有没有该订单的值)。在以后更改订单时,有些内容会更改,有些内容会新增。
问题:
如果在sql语句中执行update操作,在没有数据的表中会出错。如果在逻辑代码中先做查询,查询结果有做更新,没有做插入,这样会将代码复杂化。
解决:
mysql中提供了一个sql语
Android xml资源文件中@、@android:type、@*、?、@+含义和区别
Cb123456
@+@?@*
一.@代表引用资源
1.引用自定义资源。格式:@[package:]type/name
android:text="@string/hello"
2.引用系统资源。格式:@android:type/name
android:textColor="@android:color/opaque_red"
数据结构的基本介绍
天子之骄
数据结构散列表树、图线性结构价格标签
数据结构的基本介绍
数据结构就是数据的组织形式,用一种提前设计好的框架去存取数据,以便更方便,高效的对数据进行增删查改。正确选择合适的数据结构,对软件程序的高效执行的影响作用不亚于算法的设计。此外,在计算机系统中数据结构的作用也是非同小可。例如常常在编程语言中听到的栈,堆等,就是经典的数据结构。
经典的数据结构大致如下:
一:线性数据结构
(1):列表
a
通过二维码开放平台的API快速生成二维码
一炮送你回车库
api
现在很多网站都有通过扫二维码用手机连接的功能,联图网(http://www.liantu.com/pingtai/)的二维码开放平台开放了一个生成二维码图片的Api,挺方便使用的。闲着无聊,写了个前台快速生成二维码的方法。
html代码如下:(二维码将生成在这div下)
? 1
&nbs
ImageIO读取一张图片改变大小
3213213333332132
javaIOimageBufferedImage
package com.demo;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
/**
* @Description 读取一张图片改变大小
* @author FuJianyon
myeclipse集成svn(一针见血)
7454103
eclipseSVNMyEclipse
&n
装箱与拆箱----autoboxing和unboxing
darkranger
J2SE
4.2 自动装箱和拆箱
基本数据(Primitive)类型的自动装箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0开始提供的功能。虽然为您打包基本数据类型提供了方便,但提供方便的同时表示隐藏了细节,建议在能够区分基本数据类型与对象的差别时再使用。
4.2.1 autoboxing和unboxing
在Java中,所有要处理的东西几乎都是对象(Object)
ajax传统的方式制作ajax
aijuans
Ajax
//这是前台的代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+
只用jre的eclipse是怎么编译java源文件的?
avords
javaeclipsejdktomcat
eclipse只需要jre就可以运行开发java程序了,也能自动 编译java源代码,但是jre不是java的运行环境么,难道jre中也带有编译工具? 还是eclipse自己实现的?谁能给解释一下呢问题补充:假设系统中没有安装jdk or jre,只在eclipse的目录中有一个jre,那么eclipse会采用该jre,问题是eclipse照样可以编译java源文件,为什么呢?
&nb
前端模块化
bee1314
模块化
背景: 前端JavaScript模块化,其实已经不是什么新鲜事了。但是很多的项目还没有真正的使用起来,还处于刀耕火种的野蛮生长阶段。 JavaScript一直缺乏有效的包管理机制,造成了大量的全局变量,大量的方法冲突。我们多么渴望有天能像Java(import),Python (import),Ruby(require)那样写代码。在没有包管理机制的年代,我们是怎么避免所
处理百万级以上的数据处理
bijian1013
oraclesql数据库大数据查询
一.处理百万级以上的数据提高查询速度的方法: 1.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。
2.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 o
mac 卸载 java 1.7 或更高版本
征客丶
javaOS
卸载 java 1.7 或更高
sudo rm -rf /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin
成功执行此命令后,还可以执行 java 与 javac 命令
sudo rm -rf /Library/PreferencePanes/JavaControlPanel.prefPane
成功执行此命令后,还可以执行 java
【Spark六十一】Spark Streaming结合Flume、Kafka进行日志分析
bit1129
Stream
第一步,Flume和Kakfa对接,Flume抓取日志,写到Kafka中
第二部,Spark Streaming读取Kafka中的数据,进行实时分析
本文首先使用Kakfa自带的消息处理(脚本)来获取消息,走通Flume和Kafka的对接 1. Flume配置
1. 下载Flume和Kafka集成的插件,下载地址:https://github.com/beyondj2ee/f
Erlang vs TNSDL
bookjovi
erlang
TNSDL是Nokia内部用于开发电信交换软件的私有语言,是在SDL语言的基础上加以修改而成,TNSDL需翻译成C语言得以编译执行,TNSDL语言中实现了异步并行的特点,当然要完整实现异步并行还需要运行时动态库的支持,异步并行类似于Erlang的process(轻量级进程),TNSDL中则称之为hand,Erlang是基于vm(beam)开发,
非常希望有一个预防疲劳的java软件, 预防过劳死和眼睛疲劳,大家一起努力搞一个
ljy325
企业应用
非常希望有一个预防疲劳的java软件,我看新闻和网站,国防科技大学的科学家累死了,太疲劳,老是加班,不休息,经常吃药,吃药根本就没用,根本原因是疲劳过度。我以前做java,那会公司垃圾,老想赶快学习到东西跳槽离开,搞得超负荷,不明理。深圳做软件开发经常累死人,总有不明理的人,有个软件提醒限制很好,可以挽救很多人的生命。
相关新闻:
(1)IT行业成五大疾病重灾区:过劳死平均37.9岁
读《研磨设计模式》-代码笔记-原型模式
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* Effective Java 建议使用copy constructor or copy factory来代替clone()方法:
* 1.public Product copy(Product p){}
* 2.publi
配置管理---svn工具之权限配置
chenyu19891124
SVN
今天花了大半天的功夫,终于弄懂svn权限配置。下面是今天收获的战绩。
安装完svn后就是在svn中建立版本库,比如我本地的是版本库路径是C:\Repositories\pepos。pepos是我的版本库。在pepos的目录结构
pepos
component
webapps
在conf里面的auth里赋予的权限配置为
[groups]
浅谈程序员的数学修养
comsci
设计模式编程算法面试招聘
浅谈程序员的数学修养
批量执行 bulk collect与forall用法
daizj
oraclesqlbulk collectforall
BULK COLLECT 子句会批量检索结果,即一次性将结果集绑定到一个集合变量中,并从SQL引擎发送到PL/SQL引擎。通常可以在SELECT INTO、
FETCH INTO以及RETURNING INTO子句中使用BULK COLLECT。本文将逐一描述BULK COLLECT在这几种情形下的用法。
有关FORALL语句的用法请参考:批量SQL之 F
Linux下使用rsync最快速删除海量文件的方法
dongwei_6688
OS
1、先安装rsync:yum install rsync
2、建立一个空的文件夹:mkdir /tmp/test
3、用rsync删除目标目录:rsync --delete-before -a -H -v --progress --stats /tmp/test/ log/这样我们要删除的log目录就会被清空了,删除的速度会非常快。rsync实际上用的是替换原理,处理数十万个文件也是秒删。
Yii CModel中rules验证规格
dcj3sjt126com
rulesyiivalidate
Yii cValidator主要用法分析:
yii验证rulesit 分类: Yii yii的rules验证 cValidator主要属性 attributes ,builtInValidators,enableClientValidation,message,on,safe,skipOnError
 
基于vagrant的redis主从实验
dcj3sjt126com
vagrant
平台: Mac
工具: Vagrant
系统: Centos6.5
实验目的: Redis主从
实现思路
制作一个基于sentos6.5, 已经安装好reids的box, 添加一个脚本配置从机, 然后作为后面主机从机的基础box
制作sentos6.5+redis的box
mkdir vagrant_redis
cd vagrant_
Memcached(二)、Centos安装Memcached服务器
frank1234
centosmemcached
一、安装gcc
rpm和yum安装memcached服务器连接没有找到,所以我使用的是make的方式安装,由于make依赖于gcc,所以要先安装gcc
开始安装,命令如下,[color=red][b]顺序一定不能出错[/b][/color]:
建议可以先切换到root用户,不然可能会遇到权限问题:su root 输入密码......
rpm -ivh kernel-head
Remove Duplicates from Sorted List
hcx2013
remove
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,Given 1->1->2, return 1->2.Given 1->1->2->3->3, return&
Spring4新特性——JSR310日期时间API的支持
jinnianshilongnian
spring4
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
浅谈enum与单例设计模式
247687009
java单例
在JDK1.5之前的单例实现方式有两种(懒汉式和饿汉式并无设计上的区别故看做一种),两者同是私有构
造器,导出静态成员变量,以便调用者访问。
第一种
package singleton;
public class Singleton {
//导出全局成员
public final static Singleton INSTANCE = new S
使用switch条件语句需要注意的几点
openwrt
cbreakswitch
1. 当满足条件的case中没有break,程序将依次执行其后的每种条件(包括default)直到遇到break跳出
int main()
{
int n = 1;
switch(n) {
case 1:
printf("--1--\n");
default:
printf("defa
配置Spring Mybatis JUnit测试环境的应用上下文
schnell18
springmybatisJUnit
Spring-test模块中的应用上下文和web及spring boot的有很大差异。主要试下来差异有:
单元测试的app context不支持从外部properties文件注入属性
@Value注解不能解析带通配符的路径字符串
解决第一个问题可以配置一个PropertyPlaceholderConfigurer的bean。
第二个问题的具体实例是:
 
Java 定时任务总结一
tuoni
javaspringtimerquartztimertask
Java定时任务总结 一.从技术上分类大概分为以下三种方式: 1.Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务; 说明: java.util.Timer定时器,实际上是个线程,定时执行TimerTask类 &
一种防止用户生成内容站点出现商业广告以及非法有害等垃圾信息的方法
yangshangchuan
rank相似度计算文本相似度词袋模型余弦相似度
本文描述了一种在ITEYE博客频道上面出现的新型的商业广告形式及其应对方法,对于其他的用户生成内容站点类型也具有同样的适用性。
最近在ITEYE博客频道上面出现了一种新型的商业广告形式,方法如下:
1、注册多个账号(一般10个以上)。
2、从多个账号中选择一个账号,发表1-2篇博文