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

“Life is short, you need Python!”


用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()

测试:

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

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

测试:

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

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

这个,《Python小程序: ServerInformation》

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

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

Python写简单的网络服务器示例》上有40条评论

    1. Xiaoxia 文章作者

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

      回复
  1. Tianyuan

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

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

    回复
  2. IntSilence

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

    回复
  3. janice

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

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>