网络编程之Socket【Python】

Socket的介绍:
socket(套接字),是支持TCP/IP的网络通信的基本操作单元,可以看做是不同主机之间进程进行双向通信的端点,你可以理解为双方通信的一种约定,在Python用到的就是socket模块,用socket()函数提供的一些方法,可以实现基于套接字的网络通信。

在这里插入图片描述

socket()模块函数

要创建套接字,就必须使用socket.socket()函数,它一般的语法如下:

socket(socket_family,socket_type,protocol=0)

其中socket_family是AF_UNIX(只能够用于单一的Unix系统进程间通信)或者AF_INET(默认是IPv4),socket_type是SOCK_STREAM(TCP流式报文)或者是SOCK_DGRAM(UDP数据报式报文),protocol通常省略,默认为0。

所以,为了创建TCP/IP套接字,可以使用下面的方式调用socket.socket()。

tcpSocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

同样,为了创建UDP/IP套接字,需要执行下面的语句。

udpSocket=socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

套接字对象(内置方法)

下面的表格只列出一些经常用到的属性和方法

属性 名称
服务器端套接字方法
s.bind 将地址(主机名和端口号对)元组的形式绑定到套接字上
s.listen() 设置 并启动TCP监听器,挂起的最大连接数量,至少为1,最大为5。
s.accept() 被动接受TCP客户端连接,一直等待到连接到达(阻塞)
客户端套接字方法
s.connect() 主动发起TCP服务器连接
s.connect_ex() connect()函数的扩展版本,出错时返回出错码,而不是抛出异常
普通的套接字方法
s.recv() 接受TCP消息
s.recv_into() 接受TCP消息到指定的缓冲区
s.send() 发送TCP消息
s.sendall() 完整的发送TCP消息
s.recvfrom() 接受UDP消息
s.recvfrom_into() 接受UDP消息到指定的缓冲区
s.sendto() 发送UDP消息
s.shutdown() 关闭连接
s.close() 关闭套接字
面向阻塞的套接字方法
s.fileno() 套接字的文件描述符
s.makefile() 创建套接字关联的文件对象

猜你喜欢

转载自blog.csdn.net/weixin_38819889/article/details/86001243