编写一个简单的python服务器程序,求下面代码的逐行注释!!

import socket
host=''
port=51423
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind((host,port))
s.listen(1)
print ("Server is running on port %d;press Ctrl-C to terminate." % port)
while 1:
clientsock,clientaddr=s.accept()
clientfile=clientsock.makefile('rw',0)
clientfile.write("Welcome,"+str(clientaddr)+"\n")
clientfile.write("please enter a string:")
line=clientfile.readline().strip()
clientfile.write("you entered %d characters.\n" % len(line))
clientfile.close()
clientsock.close()

这个主要是要对socket的基本通讯流程比较熟悉,socket server端的流程是
建立socket
bind到特定的端口
listen指定连接数量
accept接受连接
建立连接后用read/write通讯
完成后用close清理资源

import socket 导入socket库
host='' 指明需要绑定的ip,为空应该是绑定本机所有Ip
port=51423 绑定的端口号
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) 创建socket
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1) 设置socket的属性
s.bind((host,port)) 绑定端口
s.listen(1) 设置只允许一个client连接
print ("Server is running on port %d;press Ctrl-C to terminate." % port) 打印信息,提示端口号
while 1: 死循环等待连接
clientsock,clientaddr=s.accept() 等待直至有client连接,分别返回通讯用的socket和client的地址
clientfile=clientsock.makefile('rw',0) 创建用于通讯用的虚拟文件
clientfile.write("Welcome,"+str(clientaddr)+"\n") 向client发送消息
clientfile.write("please enter a string:") 向client发送消息
line=clientfile.readline().strip() 读取client消息
clientfile.write("you entered %d characters.\n" % len(line)) 向client发送消息
clientfile.close() 关闭虚拟文件
clientsock.close() 关闭通讯用socket,通讯结束追问

大牛,我下面这个程序在windows下,cmd执行C:\Users\hp>Desktop\download.py http://http.us.debian.org/debian/Ls-LR.gz | gunzip | more 报错---'gunzip' 不是内部或外部命令,也不是可运行的程序或批处理文件。怎么回事额??求指点
import urllib,sys
f=urllib.urlopen(sys.argv[1])
while 1:
buf=f.read(2048)
if not len(buf):
break
sys.stdout.write(buf)

追答

gunzip是unix上默认安装的命令,windows上没有,就和你直接在命令行输入gunzip一样。
你可以找一个windows上命令行可以用的压缩软件进行修改
C:\Users\abcd>gunzip
'gunzip' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-04
你可以在网上下programming python 这本书 里面网络编程那章 基本上就是逐行解释
相似回答