我以爲它是在編譯時從/proc/sys/net/core/somaxconn
檢索的,但是在我將其修改爲1024
的echo 1024 > /proc/sys/net/core/somaxconn
之後,SOMAXCONN
在我的程序中仍然是128
。c中定義的const SOMAXCONN在哪裏?
printf("---------------set socket to listen,maxconn is %d--------------\r\n\r\n", SOMAXCONN);
// set socket to listen
if (listen(sock_listen, SOMAXCONN) != 0)...
我檢查sys/socket.h
,但它不存在...
在哪裏/我怎樣才能改變它的價值呢?
它應該在'tcp.h'中。請參閱:http://stackoverflow.com/questions/1198564/programatically-evaluating-the-value-of-somaxconn-to-set-the-listen-backlog-para – 2011-05-19 13:00:09
@Evan Mulawski,只是檢查,不存在... – 2011-05-19 13:02:44
'/ etc/sysctl.conf'如何?它應該在'kern.ipc.somaxconn'下。您可以使用http://linux.die.net/man/8/sysctl以編程方式更改值。 – 2011-05-19 13:05:17