导航

2012年4月8日

摘要: 表达式的计算分为两种,一种是有副作用的计算,如: (++x)+y 一种是无副作用的计算,如: x*y 有副作用的计算中,子表达式的计算顺序是重要的。例如 (++x)*(x+1) 当x=0时,如果先算++x,上式计算结果为2,如果先算x+1,上式计算结果为1。 再如,对函数g(int,int)的调用g(x,++x),当x=1,这个调用是g(1,2)还是g(2,2)? 所谓“顺序点”,和表达式的副作用紧密相关。再看这个例子: (++i)+(++j) 这个表达式的计算,有两个副作用: i自增1; j自增1; 但是到底哪一个先发生?答案是:任何答案都不对。 为什么... 阅读全文

posted @ 2012-04-08 22:21 网名还没想好 阅读(291) 评论(0) 推荐(0) 编辑

摘要: 通常所见的的TCP服务器都 是并发实现的,即服务同时处理多个请求,而不是等待前一个完成再处理下一个请求,这个实现得益于TCP的listen()与connect()的分工处理 机制。具体为,服务器监听来自客户的连接,当一个请求到来时,服务器fork()一个子进程,处理该请求,然后父进程继续监听外部请求。 但在UDP中,没有这种监听和连接机制,所以它必须等待前一处理完成才能继续处理下一个客户的请求。但并不是说UDP实现并发服务器是不可能的,只是与 上面的实现稍有不同。原理如下:服务器(知名端口)等待一下客户的到来,当一个客户到来后,记下其IP和port,然后同理,服务器fork一个子进程, 建.. 阅读全文

posted @ 2012-04-08 21:45 网名还没想好 阅读(1510) 评论(0) 推荐(0) 编辑