新手学Python 第十四篇 网络编程(一)
2013-10-25 10:08
176 查看
socket模块函数
tcpSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
创建一个TCP/IP的套接字
udpSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
创建一个UDP/IP的套接字
函数 描述
服务器端套接字函数
s.bind() 绑定地址到套接字
s.listen() 开始TCP监听
s.accept() 被动接受TCP客户的连接,等待连接的到来
客户端套接字函数
s.connect() 主动初始化TCP服务器连接
s.connect_ex() connect()的扩展
公共用途的套接字函数
s.recv() 接受TCP数据
s.send() 发送TCP数据
s.sendall() 完整发送TCP数据
s.recvfrom() 接受UDP数据
s.sendto() 发送UDP数据
s.getpeername() 连接到当前套接字的远端的地址
s.getsockname() 当前套接字地址
s.getsockopt() 返回指定套接字的参数
s.setsockopt() 设置指定套接字的参数
s.close() 关闭套接字
阻塞与非阻塞的套接字函数
s.setblocking() 设置套接字的阻塞与非阻塞模式
s.settimeout() 设置阻塞套接字操作的超时时间
s.gettimeout() 得到阻塞套接字操作的超时时间
面向文件的套接字函数:
s.fileno() 套接字的文件描述符
s.makefile() 创建一个与该套接字关联的文件
例子:
服务器:能够接受客户的信息,并在消息前加一个时间戳后返回的TCP服务器
客户端:提示用户输入要传给服务器的信息,显示服务器返回的加了时间戳
的结果
tcpSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
创建一个TCP/IP的套接字
udpSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
创建一个UDP/IP的套接字
函数 描述
服务器端套接字函数
s.bind() 绑定地址到套接字
s.listen() 开始TCP监听
s.accept() 被动接受TCP客户的连接,等待连接的到来
客户端套接字函数
s.connect() 主动初始化TCP服务器连接
s.connect_ex() connect()的扩展
公共用途的套接字函数
s.recv() 接受TCP数据
s.send() 发送TCP数据
s.sendall() 完整发送TCP数据
s.recvfrom() 接受UDP数据
s.sendto() 发送UDP数据
s.getpeername() 连接到当前套接字的远端的地址
s.getsockname() 当前套接字地址
s.getsockopt() 返回指定套接字的参数
s.setsockopt() 设置指定套接字的参数
s.close() 关闭套接字
阻塞与非阻塞的套接字函数
s.setblocking() 设置套接字的阻塞与非阻塞模式
s.settimeout() 设置阻塞套接字操作的超时时间
s.gettimeout() 得到阻塞套接字操作的超时时间
面向文件的套接字函数:
s.fileno() 套接字的文件描述符
s.makefile() 创建一个与该套接字关联的文件
例子:
服务器:能够接受客户的信息,并在消息前加一个时间戳后返回的TCP服务器
import socket from time import ctime HOST = '' PORT = 50007 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.bind((HOST,PORT)) s.listen(1) conn, addr = s.accept() print 'Connected by',addr print 'socket is ',conn while 1: data = conn.recv(1024) if not data: break conn.send('[%s]%s'%(ctime(),data)) conn.close()
客户端:提示用户输入要传给服务器的信息,显示服务器返回的加了时间戳
的结果
import socket HOST = 'localhost' PORT = 50007 s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect((HOST,PORT)) while 1: data = raw_input('>') if not data:break s.send(data) data = s.recv(1024) print 'data is ',data s.close() print 'Received',repr(data)
相关文章推荐
- 新手学python 第十五篇 网络编程(二)
- JAVA从菜鸟【入门】到新手【实习】一一Python制作的第一个实战项目“网络爬虫”
- [转]python新手必碰到的问题---encode与decode,中文乱码
- Python新手学习基础之数据类型——变量
- python 新手遇到的问题
- python之socket网络编程
- Python新手学习基础之循环语句——While循环
- 17个新手常见Python运行时错误
- Python_新手入门及画出图形
- 简单配置nginx+uWSGI+python3+bottle环境新手教程
- python 新手练习题
- python新手
- Python 新手常犯错误(一)
- 3、python web方向Django新手入门—views与urls篇
- 新手如何快速入门Python(菜鸟必看篇)
- 【学习笔记】Python网络编程(四)完善socket模拟ssh协议
- 新手学python笔记--3--爬取天天基金数据
- 新手常见6种的python报错及解决方法
- 17个新手常见Python运行时错误
- 跟我一起学python(十),网络编程(高级篇)