启动q客户端,然后以服务器地址和端口作为参数,利用hopen打开链接。
root@localhost:~/q# ./v32/q
KDB+ 2.7 2010.11.30 Copyright (C) 1993-2010 Kx Systems
v32/ 1()core 2550MB root localhost 127.0.0.1 PLAY 2011.02.28
q)h:hopen `:localhost:5001
': Connection refused
连接失败
可能是由于服务器未启动。服务器启动如下
root@localhost:~/q# ./v32/q
KDB+ 2.7 2010.11.30 Copyright (C) 1993-2010 Kx Systems
v32/ 1()core 2550MB root localhost 127.0.0.1 PLAY 2011.02.28
q)\p 5001 #注意这里是改变服务器行为,使得其能够监听5001端口。
然后我们再在客户端尝试连接,连接成功。
q)h:hopen `:localhost:5001
此时,h就是连接句柄。可正对此句柄进行一些操作,例如下面的在服务器上执行1+1
q)h "1+1"
2
q)hclose h
最基本的网络操作到此就结束了。上完初级课程后,我们再深入看看其他的地方吧。
在q中有一些系统自带的变量,通过修改这些变量能够修改我们的操作行为和结果。
.z.pc 连接关闭句柄。即处理网络远程关闭这一操作的句柄。
.z.po 连接打开句柄。即处理打开这一操作的句柄。
.z.pg 连接获取句柄get
.z.ps 连接设置句柄set
例如我们在服务器端,设置.z.po的行为,可以用来记录用户的连接行为。
q).z.po:{0N!(`portOpen;x);}
此时客户端发起连接时,
q)h:hopen `::5001
我们可以在服务器端看到
q)(`portOpen;5)
设置.z.pg的行为后,可以记录用户发过来的没一个请求。
q).z.pg:{0N!(.z.w;.z.a;.z.u;.z.p;x);value x}
客户端发出一下请求:
q)h "1+1"
服务器端返回:
q)(5;2130706433;`root;2011.01.01D12:05:24.690482000;"1+1")
阅读(1892) | 评论(0) | 转发(0) |