服务器端编程问题求助 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
myrual
V2EX    问与答

服务器端编程问题求助

  •  
  • &bsp; myrual 2012-04-25 07:07:03 +08:00 3310 次点击
    这是一个创建于 4984 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我同事用C语言写了一个服务器端的TCP socket程序,用来截取一个嵌入式设备上发的http GET请求(http:host/asp.net?xxx=yyy&xxx=yyy),然后把参数拿到之后转发给本地的apache服务,然后用php来处理。 之所以这么做是因为他只会php,所以只能想到这个方案。
    他的c语言程序很简单, 监听本地端口,有连接进入就开一个线程进行参数截取操作,拿到参数转发本地之后就关闭socket,然后退出线程。整个程序没有用到select。
    现在遇到了两个问题:
    1. 如果用户多了,会发现服务器端有大量的处于 CLOSE_WAIT的连接。
    2. 用户多了以后,这个c语言写的TCP socket程序会占用大量的cpu时间。

    针对问题2:
    apache能处理类似 asp.net的http get请求么?
    如果使用python twisted来处理http get,会比现在的情况好么?
    web.py是不是更加合适?
    8 条回复    1970-01-01 08:00:00 +08:00
    ratazzi
        1
    ratazzi  
       2012-04-25 07:26:54 +08:00
    直接 iptables 就可以转发了,干嘛要自己写,内核处理效率多高啊,如果可以的话
    bearice
        2
    bearice  
       2012-04-25 08:32:51 +08:00
    1。CLOSE_WAIT是由于服务端主动关闭链接导致的,这是不可避免的。
    2。不明白你说的http get是什么样的请求。普通的HTTP请求的话不是直接用apache更加方便?
    myrual
        3
    myrual  
    OP
       2012-04-25 08:43:21 +08:00
    @bearice 谢谢。
    http get 的请求是这样的 GET http://xxx.com/abc.asp?arg1=val1&ar2=val2
    我的同事不懂如何用apache来处理这样的请求,我也不懂
    HowardMei
        4
    HowardMei  
       2012-04-25 09:28:40 +08:00
    mongrel2 ? 有个 www.photon-project.com/ 在做php+m2这件事情, 不知道有谁用于生产环境,所以要仔细权衡。

    话说还是python和nodejs在这方面优势比较大。
    HowardMei
        5
    HowardMei  
       2012-04-25 09:34:32 +08:00
    我一直关注能一体支持web和非web任务并发处理的系统,感觉mongrel2是很有前途的,准备挖下一个坑就用它试试看。
    9hills
        6
    9hills  
       2012-04-25 09:43:45 +08:00   1
    @myrual 用PHP+Apache很容易就能获得HTTP GET参数,和Apache无关,Apache就是个server,主要是PHP来处理。

    记得是 $_GET['arg1'] 之类的,PH不熟。。
    binux
        7
    binux  
       2012-04-25 10:09:35 +08:00   1
    @myrual 你是指地址是abc.asp而不是abc.php? rewrite就好了啊
    bearice
        8
    bearice  
       2012-04-25 17:14:39 +08:00
    @myrual
    用Apache吧所有请求都rewrite到一个php上就好了,例如:
    <VirtualHost *:80>
    ServerName test
    DocumentRoot /path/to/your/script/dir
    RewriteEngine on
    RewriteRule ^(.*)$ /some.php [L]
    </VirtualHost>
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5225 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 08:28 PVG 16:28 LAX 00:28 JFK 03:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86