openssl之BIO系列之18---接受(accept)类型BIO

本文介绍了OpenSSL中的BIO_accept类型,它封装了Socket的accept方法,实现跨平台的TCP/IP连接接受。BIO_s_accept创建接受类型BIO,通过BIO_set_accept_port设置监听端口。BIO_new_accept创建新BIO并与端口关联。当有连接建立时,新socket BIO会被添加到BIO链中。BIO_set_nbio_accept设置阻塞或非阻塞模式,BIO_set_accept_bios设置连接后的BIO处理链。BIO_do_accept用于启动接受并等待连接。文章还提供了一个示例,展示如何处理多个连接。
摘要由CSDN通过智能技术生成
接受(accept)类型BIO
    ---根据openssl doc/crypto/bio_s_accept.pod翻译和自己的理解写成
    
    (作者:DragonKing, Mail: wzhah@263.net ,发布于:http://openssl.126.com之openssl专业论坛)
    
    接受(accept)类型的BIO跟连接(connect)类型BIO是相对应的,它封装了Socket的accept方法及其相关的一些操作,使得能够对不同的平台使用同一的函数进行操作。其定义的相关函数如下(openssl/bio.h):
    
     BIO_METHOD * BIO_s_accept(void);
     #define BIO_set_accept_port(b,name) BIO_ctrl(b,BIO_C_SET_ACCEPT,0,(char *)name)
     #define BIO_get_accept_port(b) BIO_ptr_ctrl(b,BIO_C_GET_ACCEPT,0)
     BIO *BIO_new_accept(char *host_port);
     #define BIO_set_nbio_accept(b,n) BIO_ctrl(b,BIO_C_SET_ACCEPT,1,(n)?"a":NULL)
     #define BIO_set_accept_bios(b,bio) BIO_ctrl(b,BIO_C_SET_ACCEPT,2,(char *)bio)
     #define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL)
     #define BIO_get_bind_mode(b,mode) BIO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值