%D6%C6%B7%FE%C3%C0%C9%D9%C5%AE%87%ED%BC%F8b

Books Hotgirlsfilm E Girls Ca Ca Pedia Org Pen%C3%ADnsula De Seward Hot Girls Film 16hot 的博客

Books Hotgirlsfilm E Girls Ca Ca Pedia Org Pen%C3%ADnsula De Seward Hot Girls Film

16hot Seward 没有评论

在一个应用程序里用到system函数来执行系统命令,开始时死活也获取不了正确的返回码。几经调试后发现是设置了信号处理,将信号处理部分注释掉,就可以正常获取到system的返回码了。

不过,这时又遇到了新问题。fork子进程执行后,会变成defunct状态(僵尸进程)。于是在程序里面加入了wait,等待子进程结束后收尸。问题看起来是解决了,能获取到system返回状态,又解决了僵尸进程。

但是,又有新问题来了。由于使用wait,它会无条件的等待子进程结束后,才让父进程继续工作。因为它是堵塞执行的。
也因此而导致无法多个子进程并发工作。只有第一个子进程结束后,才会执行第二个子进程。

后来的解决办法,是采用两次fork来解决。先fork一个子进程,我们叫它子进程 A吧。在子进程A里再fork多个子进程来执行具体任务,当然是并发的。用那个wait来接收子进程A结束状态,避免僵尸进程出现。至于子进程A fork出来的子进程,由于子进程A结束了,这些子进程就变成了无主进程,就被init接管,执行结束了,就退出被内核回收,也就没有僵尸进程了。

通过这个应用程序,理解了屏蔽子进程信号,会导致system返回值异常;如果不wait(还有其他相关的wait函数),子进程就会变成僵尸进程。

分类: BSD/linux, C/C++ 标签: ,

8 个实用的 Linux netcat 命令示例

2012年4月24日 16hot 没有评论

Netcat 或者叫 nc 是 Linux 下的一个用于调试和检查网络工具包。可用于创建 TCP/IP 连接,最大的用途就是用来处理 TCP/UDP 套接字。

这里我们将通过一些实例来学习 netcat 命令。

1. 在服务器-客户端架构上使用 Netcat

netcat 工具可运行于服务器模式,侦听指定端口

1
$ nc -l 2389
然后你可以使用客户端模式来连接到 2389 端口:

1
$ nc localhost 2389
现在如果你输入一些文本,它将被发送到服务器端:

1
$ nc localhost 2389
2
HI, oschina
在服务器的终端窗口将会显示下面内容:

1
$ nc -l 2389
2
HI, oschina

2. 使用 Netcat 来传输文件

netcat 工具还可用来传输文件,在客户端,假设我们有一个 testfile 文件:

1
$ cat testfile
2
hello oschina
而在服务器端有一个空文件名为 test

然后我们使用如下命令来启用服务器端:

1
$ nc -l 2389 > test
紧接着运行客户端:

1
cat testfile | nc localhost 2389
然后你停止服务器端,你可以查看 test 内容就是刚才客户端传过来的 testfile 文件的内容:

1
$ cat test
2
hello oschina

3. Netcat 支持超时控制

多数情况我们不希望连接一直保持,那么我们可以使用 -w 参数来指定连接的空闲超时时间,该参数紧接一个数值,代表秒数,如果连接超过指定时间则连接会被终止。

服务器:

1
nc -l 2389
客户端:

1
$ nc -w 10 localhost 2389
该连接将在 10 秒后中断。

注意: 不要在服务器端同时使用 -w 和 -l 参数,因为 -w 参数将在服务器端无效果。

4. Netcat 支持 IPv6
netcat 的 -4 和 -6 参数用来指定 IP 地址类型,分别是 IPv4 和 IPv6:

服务器端:

1
$ nc -4 -l 2389
客户端:

1
$ nc -4 localhost 2389
然后我们可以使用 netstat 命令来查看网络的情况:

1
$ netstat | grep 2389
2
tcp 0 0 localhost:2389 localhost:50851 ESTABLISHED
3
tcp 0 0 localhost:50851 localhost:2389 ESTABLISHED
接下来我们看看IPv6 的情况:

服务器端:

1
$ nc -6 -l 2389
客户端:

1
$ nc -6 localhost 2389
再次运行 netstat 命令:

1
$ netstat | grep 2389
2
tcp6 0 0 localhost:2389 localhost:33234 ESTABLISHED
3
tcp6 0 0 localhost:33234 localhost:2389 ESTABLISHED
前缀是 tcp6 表示使用的是 IPv6 的地址。

5. 在 Netcat 中禁止从标准输入中读取数据

该功能使用 -d 参数,请看下面例子:

服务器端:

1
$ nc -l 2389
客户端:

1
$ nc -d localhost 2389
2
Hi
你输入的 Hi 文本并不会送到服务器端。

6. 强制 Netcat 服务器端保持启动状态

如果连接到服务器的客户端断开连接,那么服务器端也会跟着退出。

服务器端:

1
$ nc -l 2389
客户端:

1
$ nc localhost 2389
2
^C
服务器端:

1
$ nc -l 2389
2
$
上述例子中,但客户端断开时服务器端也立即退出。

我们可以通过 -k 参数来控制让服务器不会因为客户端的断开连接而退出。

服务器端:

1
$ nc -k -l 2389
客户端:

1
$ nc localhost 2389
2
^C
服务器端:

1
$ nc -k -l 2389

7. 配置 Netcat 客户端不会因为 EOF 而退出

Netcat 客户端可以通过 -q 参数来控制接收到 EOF 后隔多长时间才退出,该参数的单位是秒:

客户端使用如下方式启动:

1
nc -q 5 localhost 2389
现在如果客户端接收到 EOF ,它将等待 5 秒后退出。

8. 使用 Netcat 来处理 UDP 协议

netcat 默认是使用 TCP 协议,但也支持 UDP,可使用 -u 参数来启用 UDP 协议通讯。

服务器端:

1
$ nc -4 -u -l 2389
客户端:

1
$ nc -4 -u localhost 2389
这样客户端和服务器端都使用了 UDP 协议,可通过 netstat 命令来查看:

1
$ netstat | grep 2389
2
udp 0 0 localhost:42634 localhost:2389 ESTABLISHED
英文原文, OSCHINA原创翻译

分类: BSD/linux, 转载 标签: ,

思索

2012年4月19日 16hot 没有评论

早上又是4点多就醒了。不过这次准确的说法,应该是迷糊中清醒很多了,里彻底的醒还有一段距离。昨天晚上和王锐、公俭和艳昭喝酒聊天,到家都快12点了。这也是这一年多以来,喝得最多的一次。
跟王锐确实有种相见恨晚的感觉。他是个敢说敢干的人,是个实干派,而且年龄、经历跟我非常相近。所以很投合。

早上还是8点多就到公司了,虽然还是很迷糊,但是又要打起精神开始新一天的工作了。
最近一直在反思,我们的目标,我们的理念,我们的运营方式等等。其实这些问题早就该反思了,不应该是现在才开始。只能怪自己懒惰。

分类: 16hot 杂记 标签:

天使投资人王啸:早期融资的9大误区

2012年4月19日 16hot 没有评论

  对于创业者来说,融资是一件无法绕开的大事,而创业的成功往往离不开投资人的支持。Draw Something 一夜成名的背后有著名天使投资人 Ron Conway 的帮助,Instagram 成功的背后也离不开那 9 位投资人的大力支持。但是对于早期融资,创业者往往存在很多误区。下面我们来看看九合创投创始人,“百度七剑客”之一王啸的创业早期融资策略。

  王啸认为,在创业的早期融资中,目前普遍存在着 9 大误区:

创始人股权分配平均,股权过于分散
很多创业者认为,几个创始人平均分配股权可以让大家共同奋斗,不会产生利益方面的争论。其实不然,创业公司一个最大的优势就在于高效的执行力和灵活性,而创始人在这个过程中往往处于一个中心位置。回望所有成功的企业,我们会发现它们几乎都有一个非常特别的创始人,微软、苹果、Amazon 等等无不如此。早期阶段,他们就代表着公司,是他们在驱动着公司不断向前发展。而这种驱动力不仅来自于自身的责任,更来自于“一切我说了算”的决策权。如果几个创始人股权平均太过分散,那么势必影响其决策效率。此时创业公司最大的优势:“执行力和灵活性”就已丧失。

关注钱而忽视了资金背后的投资人
谈到融资,当然需要关注钱。但是正如我们之前所分析,创业者与投资人的连结就像婚姻,与不适合的投资人联姻,很可能会毁掉创业项目。因此,关注资金背后的投资人,关注他们的行业背景、他们所拥有的资源以及他们投资的项目,看看是否能给自己带来真正价值。投资人看一个项目,往往需要对这个项目及其团队骨干做一个非常详细的尽职调查;同样,作为创业者,在寻找投资时,也需要对资金背后的投资人做个类似的尽职调查。

兼职创业希望融到钱后再全职 vBooks Hotgirlsfilm E Girls Ca Ca Pedia Org Pen%C3%ADnsula De Seward Hot Girls Film 16hot 的博客l j j Hot Girls Film Asian%20girl%20tube fBooks Hotgirlsfilm E Girls Ca Ca Pedia Org Pen%C3%ADnsula De Seward Hot Girls Film 16hot 的博客e 1