套接字
套接字是“通信端点”慨念的计算机网络数据结构,网络化的应用程序在开始任何通讯之前都必须创建套接字。
Python支持:AF_UNIX、AF_NETLINK和AF_INET,其中AF_INET是基于网络的套接字
socket模块
socket模块的socket()函数用来创建套接字。
方法:
socket(socket family, socket_type, protocal=0)
创建一个TCP/IP套接字的方法:
tcpsock = socket(socket.AF_INET, socket.SOCKET_STRING)
套接字对象方法
服务端套接字函数:
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.getpeemame()-------------------------连接到当前套接字的远端地址
s.getsockname()------------------------当前套接字的地址
s.getsockopt()---------------------------返回指定套接字的参数
s.setsockopt()---------------------------设置指定套接字的参数
s.close()----------------------------------关闭套接字
创建一个TCP服务器
ss = socket() #创建服务器套接字
ss.bind() #把地址绑定到套接字上
ss.listen() #监听连接
inf_loop: #服务器无限循环
cs=ss.accept() #接受客户端连接
common_loop: #通信循环
cs.recv()/cs.send() #对话(接受与发送)
cs.close() #关闭客户端套接字
创建一个TCP客户端
cs.socket() #创建客户端套接字
cs.connect() #尝试连接套接字
common_loop: #通信循环
cs.recv()/cs.send() #对话(接受与发送)
cs.close() #关闭客户端套接字
网友评论