37,743
社区成员




class a:
c=10
def b(self):
print self.c
a1=a()
a1.b()
不过我在socketNet用了s代替了selfimport socket,thread,e32
class socketNet:
mainUrl=""
remainUrl=""
socketObj=None
header=""
def get_main(s,x):
num=x.count("/")
if(num>=3):
a=x.find("/",7)
s.mainUrl= x[7:a]
s.remainUrl="/"+x[a+1:]
else:
s.mainUrl=x[7:]
s.remainUrl="/"
return s
def connect(s,_url):
s.get_main(_url)
s.socketObj=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.socketObj.connect((s.mainUrl, 80))
return s
def send(s,_content=None):
if(not _content):
stream="GET "+s.remainUrl+" HTTP/1.1 \r\n"
stream+="Accept: */*\r\n"
stream+="host: "+s.mainUrl+"\r\n"
stream+="Connection: close\r\n"
stream+="\r\n"
print stream
s.socketObj.send(stream)
else:
stream="POST "+s.remainUrl+" HTTP/1.1 \r\n"
stream+="Accept: */*\r\n"
stream+="host: "+s.mainUrl+"\r\n"
stream+="Content-Type: application/x-www-form-urlencoded\r\n"
stream+="Content-Length: "+str(len(_content))+"\r\n"
stream+="Connection: close\r\n"
stream+="\r\n"
stream+=_content+"\r\n"
print stream
s.socketObj.send(stream)
return s
def getIntegral(s,x):
a=int(x)
if(a<x):
a+=1
return a
def getContentLength(s):
x=s.header
l=len("Content-Length: ")
a=x.find("Content-Length: ")
if(a!=-1):
b=x.find("\r\n",a+l)
return int(x[a+l:b])
else:
return 1024*100
def getData(s):
data=""
dataPath=1024
data+=s.socketObj.recv(dataPath)
rnPosition=data.find("\r\n\r\n")
#print data,rnPosition
s.header=data[0:rnPosition+4]
#print s.header
"""pathNum=s.getIntegral(float(s.getContentLength())/float(dataPath))
for i in range(pathNum+1):
data+=s.socketObj.recv(dataPath)
"""
while True:
d=s.socketObj.recv(dataPath)
if(d!=""):
data+=d
else:
break
#s.socketObj.shutdown()
return data[rnPosition+4:]
def getNet(s,_url,_content=None):
s.connect(_url)
s.send(_content)
return s.getData()
a=socketNet()
print a.getNet("http://ad.joycool.net").decode("utf-8")
print a.header