- 浏览: 305833 次
- 性别:
- 来自: 深圳
-
最新评论
-
sunshine217:
请问 var zTool = require("./ ...
模块简单设计——socket.io聊天代码 -
fgjun:
代码中的io.sockets.emit(socket.id,d ...
模块简单设计——socket.io聊天代码
文章列表
利用又拍云存储官方php的sdk,我们可以在自己的网站上简单实现上传文件到又拍云。
示例网页
<html>
<head>upload to upyun</head>
<body>
<div id="res">
<form enctype="multipart/form-data" action="upyun.php" method="POST">
Send this file to upyun: ...
我们通过http的user-agent头判断客户端浏览器类型,下面做个测试
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
用各个浏览器访问的结果如下:
一,电脑端
IE8
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1) ; .NET CLR 1.1.4322; .NET CLR 2.0.50727; ...
O()表示法是处理近似计算的一种数学途径,当我们写下某个特定的排序算法对n个记录进行排序所需时间是O(n2)时,我们的意思是,最坏情况下,所需时间随着n的平方变化。O()表示法对我们在度量时间,内存等的值设置了上限。
有时我们会遇到复杂的O()函数,随着n的增大, 最高阶的项会主宰函数的值,习惯做法是去掉所有低阶项,对任何常数项不予考虑。如O(n2+3n)和O(n2)一样等价,这实际上是O()表示法的弱点。某个O(n2)算法可能比O(n2)算法快1000倍,但是从表示法中看不出来。
下面是一些常见的各种算法运行时间
附表一:
O(1)
常量访问(访问数 ...
FIFO也称命名管道,是一种文件类型,在文件系统中可见到。管道由于没有名字,所以只能限定在亲缘关系的进程之间的通信。而通过FIFO任意进程之间都能够进行通信了。FIFO的特点如下:
命名管道可用于任何两个进程之间的通信,比管道灵活得多
命名管道作为特殊文件存在文件系统中,当进程使用结束后仍存在文件系统,需要“手动”删除
创建一个命名管道可以用mkfifo [管道名],删除可以用unlink [管道名实现]。当然用C程序创建一个管道文件也是很方便的。
#include<stdio.h>
#include<stdlib.h>
#include& ...
进程间通信(IPC)是指在不同进程之间传递信息。linux的进程通信方式有管道,消息队列,信号量,共享内存,套接口等方式,下面一一整理。
首先是管道(PIPE),管道是Unix系统IPC最古老的方式,所有的Unix系统都提供这种通信机制。它的优点在于简单易用,缺点在于有限制,详细见下面几点:
只能用于父子进程或兄弟进程之间通信
大多数系统中都是半双工的,数据信息只能单向流动,如果需要双向通信则需要建立两个管道
传输的是无格式字节流,需要双方约定格式
管道缓冲区是有限的,等等
首先来看父子进程之间通信的例子。
#include<stdio.h>
#i ...
首先定义一个二叉树结构如下
class BNode{
private String name;
private BNode left,right;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BNode getLeft() {
return left;
}
public void setLeft(BNode left) {
this.left = l ...
设计数据结构的时候常常为了性能考虑,很容易引入一些冗余的属性,不是说多余的属性不好,我们应该按照一个正常的思维方法去设计数据结构。
看看一个记录路线的数据结构的例子,一条路线有起点,终点以及距离三个基 ...
平时为了业务实现简单,难免写一些if else语句,例如常年堆积起来的业务逻辑代码如下,可以考虑重构使得结构更为清晰:
#define SHANGHAI 100
#define BEIJING 101
#define SHENZHEN 102
#define SHANGHAI_RATE 1.01
#define BEIJING_RATE 1.02
#define SHENZHEN_RATE 1.01
void oldFunction(int base_money,int state){
int rate;
int money;
if(state ...
支持异常机制的编程语言在资源申请释放上比较麻烦,如果保证所有分支情况下资源都能顺利清除,第一种设计如下
void doSomething(){
Node *n = new Node();
try{
//do something
}
catch(...){
delete n;
throw;
}
delete n;
}
在异常和正常的分支条件下都释放资源,这就违背了DRY(don't repeat yourself)原则,我们可以考虑使用栈来代替上面的实现如下
void doSomething(){
Node n;
t ...