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)