python笔记 - 网络编程(十六)

python提供了两个级别访问的网络服务:

  • 低级别的网络服务支持基本的 Socket,提供了标准BSD Sockets API,可访问底层操作系统Socket接口的全部方法
  • 高级别的网络服务模块 SocketServer,它提供了服务器中心类,可以简化网络服务器的开发

Socket又称套接字,应用程序通常通过套接字向网络中发出请求或应答网络请求,是主机间或一台计算机上的进程可以通信

导入:import socket
创建套接字:s = socket.socket([family[, type[, proto]]])

  • family:套接字家族可以是 AF_UNIX 或者 AF_INET
  • type:套接字类型,可以根据是面向连接还是非连接的分别为SOCK_STREAMSOCK_DGRAM
  • proto:默认为0

服务端套接字对象内建方法

函数描述
s.bind()绑定地址(host, port)到套接字,在AF_INET下以元组形式表示地址
s.listen(n)监听,指定最大连接数n,一般为5
s.accept()接受客户端连接,(阻塞式)等待连接
import socket

# 创建socket对象
serverSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 绑定端口
serverSocket.bind(('127.0.0.1', 10086))
# 设置最大连接数
serverSocket.listen(5)
print('等待连接...')
while True:
    # 建立客户端连接
    clientSocket, addr = serverSocket.accept()
    print(f"连接地址:{str(addr)}")
    msg = '您已成功连接到服务器'
    clientSocket.send(msg.encode('utf-8'))
    clientSocket.close()

客户端套接字对象内建方法:

函数描述
s.connect()连接服务器,address格式为元组(hostname, port)
s.connect_ex()连接出错不抛出异常,返回异常码
import socket

# 创建套接字
clientSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 连接端口
clientSocket.connect(('127.0.0.1', 10086))
# 接收小于1024数据
msg = clientSocket.recv(1024)
print(msg.decode('utf-8'))

公共套接字函数:

函数描述
s.recv(buffsize)接收数据以字符串形式返回,指定接受最大数据量
s.send()将字符串数据发送给连接的套接字中
s.close()关闭套接字连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值