0

2348

c语言的那些坑---数组

1、arr[0]与0[arr]等价。

2、int *choise = contestants;int *choise = &contestants[0];等价。

#include <stdio.h>

int main(){

    int  contestants[] = {1,2,3};
    int *choise = contestants;
    contestants[0]  = 4;
    contestants[1] = contestants[2];
    contestants[2] = *choise;
    printf("%i,%i,%i",0[contestants],1[contestants],2[contestants]);
    //4,3,4
    printf("%i,%i,%i",contestants[0],contestants[1],contestants[2]);
    //4,3,4
    return 0;

}

乐果   发表于   2015 年 05 月 12 日 标签:c 继续阅读

0

2618

memcached编译安装

然后下载 libevent 然后上传centos,进行给予权限,然后解压

tar xzvf libevent-2.0.21-stable.tar.gz ##解压 
cd libevent-2.0.21-stable 
./configure --prefix=/usr 
make 
make install 

安装完后可以查看下/usr/lib是否有libevent等文件(ls -al /usr/lib | grep libevent)

然后下载 memcached

tar xzvf memcached-1.4.15.tar.gz 
cd memcached-1.4.15 
./configure --with-libevent=/usr 
make 
make install 

关于memcache启动的一些参数说明:

memcached命令参数解释: 
-p <num>          监听的端口 
-l <ip_addr>      连接的IP地址, 默认是本机 
......

乐果   发表于   2015 年 04 月 18 日 标签:memcached 继续阅读

0

1785

使用openssl制作证书

1、服务器单向验证 创建并进入sslkey存放目录

mkdir /opt/nginx/sslkey
cd /opt/nginx/sslkey

①、生成RSA密钥:

openssl genrsa -out key.pem 2048

②、生成一个证书请求

openssl req -new -key key.pem -out cert.csr
......

乐果   发表于   2015 年 04 月 18 日 标签:nginx 继续阅读

1

8658

mac编译安装nginx的那些坑

去官网下载nginx压缩包解压后,进入根目录,执行:

./configure \
--prefix=/data/service/nginx \
--sbin-path=/data/service/nginx/sbin/nginx \
--conf-path=/data/service/nginx/conf/nginx.conf \
--pid-path=/data/service/nginx/logs/nginx.pid \
--lock-path=/data/service/nginx/lock/nginx.lock \
--error-log-path=/data/service/nginx/logs/error.log \
--http-log-path=/data/service/nginx/logs/access.log \
--http-scgi-temp-path=/data/service/nginx/scgi \
--http-uwsgi-temp-path=/data/service/nginx/uwsgi \
--http-proxy-temp-path=/data/service/nginx/proxy \
--http-fastcgi-temp-path=/data/service/nginx/fastcig \
--http-client-body-temp-path=/data/service/nginx/body \
--user=nobody \
--group=nogroup \
--with-ipv6 \
......

乐果   发表于   2015 年 04 月 13 日 标签:mac 继续阅读

0

3555

Go 语言使用 TCP keepalive

如果你写过某些 TCP socket 代码,你可能会疑问:如果网线被拨掉或者远程主机崩溃了我的TCP连接会怎样?

简短的答案是:一点影响都没有。这种情况下连接的结束远程主机是不会发送FIN数据包的,并且本地系统不能检测连接是否已中断。所以需要作为程序员的你来解决这种情况。

GO语言为你提供了解决这个问题的几种方法。首选的方法可能是 net.Conn 接口中的SetReadDeadline方法。假设你的连接在以一种特定的间隔来接收数据,你可以简单地把读取超时当作一个io.EOF错误并Close这个连接。很多现有的TCP协议都支持处理错误的这种方法,它们通过定义某种心跳机制或 service health 1,在端点间以特定间隔发送PING/PONG探测包来检测双方网络问题。另外,这种心跳机制也可能有助于代理服务器查看网络活动来决定连接的健康质量。

所以,如果你的协议支持心跳的话,或者你能够为自己的协议加入心跳的话,这个方案应该是解决网络掉线问题的首选。

但是,如果你对该协议没有控制权并且它也不支持心跳你该怎么办?

现在是时候该了解 TCP keepalive并在GO中使用它了。TCP keepalive定义于RFC 1122,但并不是TCP规范中的一部分。它可以在个别的连接中启用,但默认必需是关闭的。启用它会使网络栈在空闲了特定时间后(不能低于2小时)探测连接的连接状况。探测包不能包含数据2,并且一个探测包的回复的失败不能将连接看作已中断,因为探测包的传输是不可靠的。

……

乐果   发表于   2015 年 03 月 13 日 标签:golang 继续阅读

较旧的文章 较新的文章
热评文章