windows 获取本机(全部)IPv4、IPv6、MAC地址方法 (C/C++)

windows下获取IP地址的两种方法;一种可以获取IPv4和IPv6,但是需要WSAStartup;一种只能取到IPv4,但是不需要WSAStartup;如下:方法一:(可以获取IPv4和IPv6)1#define_WINSOCK_DEPRECATED_NO_WARNINGS2#include<Winsock2.h>3#include<stdio.h>4#include<iostream>5#include<cstring>6#include<ws2tcpip.h>7#pragmacomment(lib,"ws2_32.lib")//linkingtothelibrary8usingnamespacestd;9intget_ip()10{11structaddrinfo*ailist,*aip;12structaddrinfohint;13structsockaddr_in6*sinp6;14PHOSTENThostinfo;15charhostname[255]={0};//主机名16char*port="3294";//...

windows下使用VS2015编译V8 JavaScript引擎(v5.5

今天心血来潮,下载了v8,,然后就想着用vs编译但是大家都苦恼的是v8并不直接提供vs用的项目文件和解决方案(.sln)于是,在网上搜来搜去,折腾来折腾去的;终于一点一点的尝试,可以执行 pythongypfilesgyp_v8.py-Dtarget_arch=x64但是网上搜到的都是 pythonbuildgyp_v8.py-Dtarget_arch=x64可我gitclone的没有build文件夹啊,好歹根据 https://github.com/v8/v8/wiki/Building-with-Gyp-(deprecated)#visual-studio说的在gypfiles目录找到了,但是执行命令,cpu疯狂一阵,之后就一个out的目录,什么sln,vcxproj一个都没有看到郁闷了,,,然后就一路郁闷,到处翻腾,看不同的,相关的甚至是名词解释直到下午4点多,在网上搜索"gypfilesgyp_v8",在列表里看到node.js甚至下载了其源代码用里面的v8测试,也不行,最后后还是不了了之然后又翻了下搜索结果,看到 Gyp语法规则参考&a...

HTML5 音频播放器-Javascript代码(短小精悍)

 直接上干货咯!//HTML5音频播放器lzpong2015/01/19varwavPlayer=function(){if(window.parent.wavPlayer)returnwindow.parent.wavPlayer;varCT=null;varD=null;varmover=false;varevtTm={divout:false,divtimer:0,divover:false,divshow:true,devwidth:370};D=document.createElement("div");varcls="position:absolute;top:0px;right:1px;display:none;width:20px;overflow:hidden;word-break:break-all;word-wrap:break-word;border-radius:20px;".replace("",'').split(";");for(vari=0;i<cls.length;i++){varclss=cls[i].split(":");if(c...

JavaScript Json对象和Json对象字符串的关系 jsonObj<->JsonString

JavaScriptJson对象和Json对象字符串的关系jsonObj<->JsonString如下示例:直接写的a1就是一个Json对象,a2就是一个Json对象字符串;通过eval函数得到的都是Json对象,不管参数是对象还是字符串.1functionJTS(o){2vararr=[];3varfmt=function(s){4if(typeofs=="object"&&s!=null)5returnJTS(s);6return/^(string|number)$/.test(typeofs)?"""+s+""":s;7}8for(variino)9arr.push("""+i+"":"+fmt(o[i]));10return"{"+arr.join(",")+"}";11}1213//Json对象14vara1=[{"n1":"n1t","n2":"23","n3":"1"},{"n2":"n2t","n2":"12","n3":"1"},{"n3":"n3t","n2":"64","n3":"3"},{"n4":"n4t","n2":"78","n...

freeswitch笔记(2)-voip初体验

上一篇学习了如何安装freeswitch,接下来我们利用2个voip软件来体验如何互打电话(注:仍然是mac环境,windows用户可参考mac上的做法,原理相通)一、安装yateclient及zoipervoip软件有很多种,这里选用yate及zoiper这二种免费而且跨平台的客户端。yate下载地址: https://yate.en.softonic.com/maczoiper下载地址:https://zoiper.en.softonic.com/mac 这二款软件大致长这样: 二、启动freeswitchcd/usr/local/freeswitch/bin./freeswitch注:启用freeswitch前,要先保证zoiper及yateclient这类软件完全退出,否则可能会占用默认端口5060,最终导致voipclient账号登录失败。启用成功后,可以用lsof-i:5060之类的工具,查看下端口是否正常。重要提示:freeswitch默认会启用ipv6,参见上图中的TYPE,有2条记录是Ipv6,另外二条是Ipv4,目前ipv6的支持还不完...

分表分页/跨库分页为什么这么难?

当业务数据达到一定量级(比如:mysql单表记录量>1千万)后,通常会考虑“分库分表”将数据分散到不同的库或表中,这样可以大大提高读/写性能。但是问题来了,对于 select*fromtablelimitoffset,pagesize 这种分页方式,原来一条语句就可以简单搞定的事情会变得很复杂,本文将与大家一起探讨分库分表后"分页"面临的新问题。 一、分表对分页的影响比如有一张表,里面有8条记录(为简单起见,假设该表上只有1个自增ID),数学上可以抽象成1个(有序)数列(注:为方便讨论,不加特殊说明的情况下,文本中数列的顺序,均指升序)(1,2,3,4,5,6,7,8)如果要取出上面红色标识的2,3这二条记录,limit1,2就行了。现在假如分成2张表(即:原来的数列,拆分成2个非空子数列),一般来讲,有二种常用分法:1.1分段法(比如:有时间属性的数据,类似订单这种,可以按下单时间拆分,每个月1张表)(1,2,3,4)(5,6,7,8)沿用之前的limitx,y的思路,每个分表上limit1,2,会得到如下2个子数列:(2,...

python中的zip、lambda、map操作

python中有几个比较酷炫的操作,比如:zip、lambda、map一、zip操作zip字面意思:拉链。这么来记,把几个东西扔到一个包里,拉上拉链,就算打包好了。通俗点讲,就是把第1个参数、与第2个参数...到第N个元素,按位置1个个对齐,打包输出一系列元组(turple).x=(1,2)y=("a","b")zip_result=zip(x,y)print(list(zip_result))x=[4,5,6]y=['d','e']zip_result=zip(x,y)print(list(zip_result))输出:[(1,'a'),(2,'b')][(4,'d'),(5,'e')]注意第2行的输出,这个类似木桶原理,元素个数最少的,决定最后输出元素的个数,x里有[4,5,6]3个元素,而y里有['d','e']2个元素,最终结果里就只有2个turple。另外zip的结果是一个对象,要查看的话,得转化成list对象,这样才能友好的输出。  二、lambdapython里的lambda与c#、java不同,主要用于将一些逻辑简单的代码,写得更简洁(当然:是否更简洁,这个有...

pycharm如何设置python版本、设置国内pip镜像、添加第三方类库

直接上图(mac环境):一、设置项目的python版本File->DefaultSettings...在弹出的界面上(参考下图),左上角的下拉框里,选择python解释器的版本即可(建议:直接安装anaconda,这个已经集成了很多第三方的类库)  二、添加第三方类库仍然在上图中,下面有一个+号按钮,点击进入下图:直接在搜索框里,搜索需要的第三方类库即可(以tensorflow为例),找到后点击InstallPackage即可 三、设置国内pip镜像默认情况下,跟maven中央仓库类似,pip是直接连到国外的官网下载第三方类库的,在上图InstallPackage的旁边,有一个ManageRepositories的按钮,可以添加国内镜像地址常用的国内镜像地址列表如下:  阿里云 http://mirrors.aliyun.com/pypi/simple  中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple  豆瓣(douban)&...

openssl、x509、crt、cer、key、csr、ssl、tls 这些都是什么鬼?

今天尝试在mac机上搭建dockerregistry私有仓库时,杯具的发现最新的registry出于安全考虑,强制使用ssl认证,于是又详细了解linux/mac上openssl的使用方法,接触了一堆新英文缩写,整理于下:TLS:传输层安全协议TransportLayerSecurity的缩写SSL:安全套接字层SecureSocketLayer的缩写TLS与SSL对于不是专业搞安全的开发人员来讲,可以认为是差不多的,这二者是并列关系,详细差异见http://kb.cnblogs.com/page/197396/KEY通常指私钥。CSR是CertificateSigningRequest的缩写,即证书签名请求,这不是证书,可以简单理解成公钥,生成证书时要把这个提交给权威的证书颁发机构。CRT即certificate的缩写,即证书。X.509是一种证书格式.对X.509证书来说,认证者总是CA或由CA指定的人,一份X.509证书是一些标准字段的集合,这些字段包含有关用户或设备及其相应公钥的信息。X.509的证书文件,一般以.crt结尾,根据该文件的内容编码格式,可以分为以下二种格式:PE...
代码星球 代码星球·2020-04-06

JIRA是什么?

第一种说法:     JIRA是集项目计划、任务分配、需求管理、错误跟踪于一体的商业软件。  JIRA功能全面,界面友好,安装简单,配置灵活,权限管理以及可扩展性方面都十分出色。  JIRA创建的默认问题类型包括NewFeature、Bug、Task和Improvement四种,还可以自己定义,所以它也一是过程管理系统。  Jira融合了项目管理、任务管理和缺陷管理,许多著名的开源项目都采用了JIRA。  JIRA是目前比较流行的基于Java架构的管理系统,由于Atlassian公司对很多开源项目实行免费提供缺陷跟踪服务,因此在开源领域,其认知度比其他的产品要高得多,而且易用性也好一些。同时,开源则是其另一特色,在用户购买其软件的同时,也就将源代码也购置进来,方便做二次开发。 第二种说法:    现在来看JIRA,这是一个项目管理的很好辅助工具,将所有项目开发、运作过程中的所有task、bug、创意、改善意见都可以融汇进入这个系统。可以在第一时间将这些问题指派而责任人进行处理。而想用JI...
代码星球 代码星球·2020-04-06

JavaScript中对象分类

js的对象有三大类,内部对象(本地对象和内置对象)、宿主对象和自定义对象一、内部对象1.本地对象,ECMAScript提供的需要实例化(new)才能使用的对象:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError2.内置对象,ECMAScript提供的不需要实例化就能使用的对象:只有Global(全局对象)和Math二、宿主对象浏览器提供的对象。所有的BOM和DOM都是宿主对象。三、自定义对象开发人员自己定义的对象...
代码星球 代码星球·2020-04-06

typescript简介

微软作为编译器狂魔一直有一个心病,就是改良JavaScript这种语法超级烂又很多人用的编程语言,于是TypeScript诞生了先做个对比吧: TSJS语法严谨性严谨宽松静态性静态动态适合开发规模大型小型支持类型基本类型、泛型、implements都不支持下面来把ts的特点逐一介绍:1.类型常见的ts类型:string、number、boolean、undefined、null、void、any、enum、Array、object、Neverts引入了类型的限制java在声明一个变量的时候大概是这样的:intnum;而为了更贴近js,ts声明变量的写法变成:letnum:number;如果不加冒号声明就自动判定为any类型2.枚举类型enum枚举类型,是一种自己定义的类型:enumGender{male=1,female=2}letgender:Gender;//如果想定义为malegender=Gender.male//或者直接为13.泛型<T>泛型,其实就是制定内部东西的类型letarr1:Array<number|string>;letarr2:...
代码星球 代码星球·2020-04-06

ECMAScript 提案阶段

stage0strawman任何讨论、想法、改变或者还没加到提案的特性都在这个阶段。只有TC39成员可以提交。stage1proposal(1)产出一个正式的提案。(2)发现潜在的问题,例如与其他特性的关系,实现难题。(3)提案包括详细的API描述,使用例子,以及关于相关的语义和算法。stage2draft(1)提供一个初始的草案规范,与最终标准中包含的特性不会有太大差别。草案之后,原则上只接受增量修改。(2)开始实验如何实现,实现形式包括polyfill,实现引擎(提供草案执行本地支持),或者编译转换(例如babel)stage3candidate(1)候选阶段,获得具体实现和用户的反馈。此后,只有在实现和使用过程中出现了重大问题才会修改。(1)规范文档必须是完整的,评审人和ECMAScript的编辑要在规范上签字。(2)至少要在一个浏览器中实现,提供polyfill或者babel插件。stage4finished(1)已经准备就绪,该特性会出现在下个版本的ECMAScript规范之中。。(2)需要通过有2个独立的实现并通过验收测试,以获取使用过程中的重要实践经验。...
代码星球 代码星球·2020-04-06

单线程的JavaScript

推荐阅读:JavaScript运行机制详解:再谈EventLoop 为什么JS要设计成单线程? 引用阮老师的原话:JavaScript的单线程,与它的用途有关。作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM。这决定了它只能是单线程,否则会带来很复杂的同步问题。比如,假定JavaScript同时有两个线程,一个线程在某个DOM节点上添加内容,另一个线程删除了这个节点,这时浏览器应该以哪个线程为准? 所以,为了避免复杂性,从一诞生,JavaScript就是单线程,这已经成了这门语言的核心特征,将来也不会改变。 为了利用多核CPU的计算能力,HTML5提出WebWorker标准,允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。所以,这个新标准并没有改变JavaScript单线程的本质。 Javascript是单线程的因为JS运行在浏览器中,是单线程的,每个window一个JS线程,既然是单线程的,在某个特定的时刻只有特定的代码能够被执行,并阻塞其它的代码。而浏览器是事件驱...
代码星球 代码星球·2020-04-06

什么是脚本语言

其实这种概念的意义不大,所以我们大概讨论一下就算吧脚本通常以文本保存,只在被调用时进行解释或编译。怎么判断一种语言是否算脚本,从表象看,部署使用的时候,放的是什么。放的是源码就是脚本语言,放的是编译后的代码就是编程语言。当然不是说解释型语言===脚本语言脚本语言发展至今,不一定只会是解释型喔,还可能是“JIT—即时编译”,第二次运行就可以不再编译。就如现在chrome的V8引擎一样 ...
代码星球 代码星球·2020-04-06
首页上一页...389390391392393...下一页尾页