Python网络编程:
Python提供了两个级别访问的网络服务:
低级别的网络服务支持基本的Socket,
提供了标准的BSD Socket API,可以访问底层系统socket接口的全部方法
高级别的网络服务模块SocketServer,
提供了服务器中心类,可以简化网络服务器的开发
Socket:
套接字,应用程序通常通过套接字想网络发出请求或者网络应答
socket()函数:
socket.socket([family [,type[,proto]]])
参数:
family:套接字家族可以使AF_UNIX或者AF_INET
type:套接字类型可以根据是面向连接的还是非连接的分为:SOCK_STREAM或SOCK_DGRAM
protocol:一般不填默认为0
Socket对象(内建)方法:
简单实例
服务端
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:server.py import socket # 导入 socket 模块 s = socket.socket() # 创建 socket 对象 host = socket.gethostname() # 获取本地主机名 port = 12345 # 设置端口 s.bind((host, port)) # 绑定端口 s.listen(5) # 等待客户端连接 while True: c, addr = s.accept() # 建立客户端连接 #c为socket对象,是当前客户端访问的socket,记录客户端的ip地址和端口信息,
#当下一个客户端访问时,会创建另外的一个对应的socket对象 print '连接地址:', addr c.send('欢迎访问菜鸟教程!') c.close() # 关闭连接
客户端
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:client.py import socket # 导入 socket 模块 s = socket.socket() # 创建 socket 对象 host = socket.gethostname() # 获取本地主机名 port = 12345 # 设置端口好 s.connect((host, port)) print s.recv(1024) s.close()