#socket模块
#套接字 “信息通道”
#服务器套接字 客户端套接字
#实例化三个参数 地址族(默认socket.AF_INET) 流(socket.SOCK_STREAM) 协议(0)
#服务器端使用bind 再调用listen监听地址
#客户端connect
#aa套接字 send recy
#服务器
import socket
s=socket.socket()
host=socket.gethostname()
port=1234
s.bind((host,port))
s.listen(5)
while True:
c.addr=s.accept()
print("Got connection from ",addr)
c.send("thank you for connecting")
c.close()
#客户机
import socket
s=socket.socket()
host=socket.gethostname()
port=1234
s.connect((host,port))
print s.recv(1234)
#urllib和urllib2模块 通过网络访问文件
#打开远程文件
from urllib import urlopen
web=urlopen("http://www.python.org")
#提取python页中(“About”连接URL,使用正则
import re
text=webpage.read()
m=re.search('<a href="([^"]+)".*?>about</a>'.text.re.IGNORECASE)
m.group(1)
#获取远程文件
urlretrieve("http://www.python.org","c:\\python_webpage.html")
#SocketServer和他的朋友们
#服务器框架的基础
BaseHTTPServer
SimpleHTTPServer
CGIHTTPServer
SimpleXMLRPCServer
DocXMLRPCServer
#实例
from SocketServer import TCPServer,StreamRequestHandler
class Handler(StreamRequestHandler)
def handle(self):
addr=self.request.getpeername()
print ("Got connection from addr
self.wfile.write("than you ")
server=TCOServer(("",1234)Handler)
server.serve_forver()
#多连接
#分叉(Windows不支持) 线程 异步
#线程处理服务器
from SocketServer import TCPServer,ThreadingMixIN,StreamRequestHandler
class Server(ThreadingMixIn.TCPServer):pass
class Handler(StreamRequestHandler)
def handle(self):
addr=self.request.getpeername()
print ("Got connection from addr
self.wfile.write("than you ")
server=TCOServer(("",1234)Handler)
server.serve_forver()
#d带有select和poll的一部I/O pollwindows不可u用
#select 需要三个序列为必选参数 秒为单位超时间做第四个可选参数
#输入输出异常情况 没有给定超市时间 会阻塞(等待状态)
importsocket,select
s=socket.socket()
host=socket.gethostname()
port1234
s.bind((host,port))
s.listen(5)
input[s]
while True:
rs,ws es=select.select(inputs,[],[])
for f in rs:
if r is s:
c.addr=s.accept()
print("Got connection from",addr)
inputs.append(c)
else:
try:
data=r.recv(1024)
disconnected=not data
except socket.error:
disconnected=True
if dissconnected:
print r.getpeername()."disconnected"
inputs.reme(r)
else:
print data
#Twised
python setup.pyinstall