socket:网络编程中的一个基本组件--套接字。
分客户端套接字、服务端套接字,客户端通过host(IP)和port(端口)找到需要连接服务端,与其进行通讯。
服务端:创建socket对象,获取主机ip,设置端口号,绑定主机和端口,持续监听请求(不需要时再关闭)
客户端:创建客户端socket对象,发送对应ip和端口号与对应服务端建立连接。
服务端
import socket
s=socket.socket()
host=socket.gethostname()
port=8088
s.bind((host,port))
s.listen(5)
while True:
c,addr=s.accept()
print("来自这里的连接:"),addr
c.send("连接成功")
c.close()
客户端
import socket
s=socket.socket()
host=socket.gethostname()
port=8088
s.connect((host,port))
print s.recv(1024)
urlib、urlib2这两个模块可以在网络上访问文件,方式urlopen(url),
当需要使用HTTP验证或cookie时:urlib2更适合
SocketServer:包括TCPServer、UDPServer、UnixStreamServer、UnixDatagramServer(其中TCP流式套接字更常用)
关于Unix中的分叉和线程区别:线程需要考虑同步,分叉不需要考虑。分叉更耗资源
SocketServer线程处理:让Socket实现类继承ThreadingMixIn