Xiaoxia[PG]

Python写简单的网络服务器示例

Internet、我的代码40 条评论

“Life is short, you need Python!”

39

用Python写一个socket服务有多难?

import socket
server = socket.socket()
server.bind(("", 8000))
server.listen(1)
while True:
    fd, addr = server.accept()
    fd.send(str(addr))

测试:

root@xiaoxia-pc:~# telnet xiaoxia 8000
Trying 127.0.0.1...
Connected to xiaoxia.
Escape character is '^]'.
('127.0.0.1', 38603)^]
telnet> Connection closed.

用Python写一个HTTP回应服务有多难?

from BaseHTTPServer import *
class MyHTTPHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.wfile.write("Hello world.")
server = HTTPServer(("", 8000), MyHTTPHandler)
server.serve_forever()

测试:

35

用Python写一个HTTP资源请求服务有多难?

import SimpleHTTPServer
import BaseHTTPServer
server = BaseHTTPServer.HTTPServer(("", 8000), SimpleHTTPServer.SimpleHTTPRequestHandler)
server.serve_forever()

测试:

37

36

38

这些代码很简短,就实现了很多功能,而且扩展性也很强,

例如这个,《写了一个Web Gateway做Proxy》

这个,《Python小程序: ServerInformation》

这个,《用Python写socks5服务器端》

还有这个,《用Python写一个本地Sogou代理服务器程序》

#HTTP#python#server#socket

39 条评论

  1. http资源请求服务那个正点,用来局域网分享文件很好用啊

    1. 我也觉得!!!
      谢谢提醒,以后局域网分享文件就方便了,还不用弄FTP呢!也方便我从远程的Linux服务器上浏览或者下载一些资源,哈!

  2. 用php写一个socket服务有多难?

    1. 该评论已删除

      1. 为什么我的php代码贴不上啊

        1. 你要把<写成<,把>写成>吧,不然以为你是在写HTML哦!

        2. & l t ; 和 & g t ; (中间没有空格)

          1. http://hi.baidu.com/lifulinghan/blog/item/ced4efce97431425b600c888.html?timeStamp=1320300765234
            不用发了,请看,我山寨了你这篇文章!哈哈,用php写的

          2. 似乎直接可以把&换成&而不必在这三个字符中加空格吧?

            1. 嗯,空格是为了方便我表述,实际上输入< 和 >不用加空格。

  3. 那鸭头看起来不错~

    1. 我拍的是鸵鸟头耶……你想象力太丰富了!!!

      1. 我喜欢这个鸵鸟头~

      2. 广州动物园?

        1. 对的!香江。

  4. 用 Python 写 反向代理服务器 有多难?

  5. Python 很不错,哈哈

  6. 弱弱的问个别的问题。。。。我看到了一个网页版的Linux ——>http://www.xiya.org/Linux/ 想问问这个东西是怎么搭建的啊?

    1. 这个是计算机神牛Fabrice Bellard的最新杰作吧,他的博客是bellard.org

  7. 很漂亮的终端字体,用得什么发行版和字体呢?

    1. kubuntu,字体很普通啊,Dejavu Sans Mono。

    1. 哈哈,换过来了,真舒服!我最喜欢这个头像了~~~~~~

    2. 哈哈,你的是猪头哦! So cute~~

      1. 我本来想用那个鸭子头的!可惜,它头有点歪,没有照正

        1. 这张如何?
          http://xiaoxia.org/?attachment_id=4561

          没有拍歪的哦!!!而且还是高清无码,每一根毛的细节都看见了。

  8. Life is short, we need python.

  9. 没有mail server

    1. 你觉得有需要? smtpd?

      1. 在考虑做mini mail server

  10. 发现你的博客对我帮助很大,果断订阅了。

  11. xiaoxia好,我是新人,目前对python非常感兴趣,希望不吝赐教
    最近有一个问题,想请教下
    对于python的网络部分,我知道一个用Django 和 Python 开发 Web 站点
    但我现在想做的一个项目是cs架构,不是bs架构。。。也就是说web service
    客户端直接和服务器链接
    如果是这样,那么用django是不是就不可以做了

    那是用什么别的架构,那天我听人说道Twisted,稍微看了一点,感觉这个比较适合,请问,还有什么别的推荐的架构或者方法么?如果我要学习这方面的知识,应该从哪里系统地下手?

    1. 你好啊,你的问题我已经在下面这个帖子回复过啦,你没有收到回复邮件吗?

      http://xiaoxia.org/2011/03/29/written-by-python-socks5-server/

  12. 貌似python 2.7.3 和 python 3.3.0差别挺大的,这段demo在3.3.0版本下跑步起来,请教下新手入门不管学哪个版本都是OK的把?

    1. 对的,我一开始就是学的3.0。不过后来经常用到的都是2.6,2.7的。

  13. python -m SimpleHTTPServer [8000]
    # 限于python2

    1. python2.4之前也没有-m参数。
      python3之后,可以用 python -m http.server [8000]

      🙂

  14. 用Python写一个HTTP资源请求服务有多难?只有这四行代码能实现吗,我刚学习这块,实现不了,还请指教

发表评论

评论会经过自动审核,链接请勿超过 3 个。