BIO_S_ACCEPT(3ssl) OpenSSL BIO_S_ACCEPT(3ssl) BIO_s_accept, BIO_set_accept_name, BIO_set_accept_port, BIO_get_accept_name, BIO_get_accept_port, BIO_new_accept, BIO_set_nbio_accept, BIO_set_tfo_accept, BIO_set_accept_bios, BIO_get_peer_name, BIO_get_peer_port, BIO_get_accept_ip_family, BIO_set_accept_ip_family, BIO_set_bind_mode, BIO_get_bind_mode, BIO_do_accept - BIO #include const BIO_METHOD *BIO_s_accept(void); long BIO_set_accept_name(BIO *b, char *name); char *BIO_get_accept_name(BIO *b); long BIO_set_accept_port(BIO *b, char *port); char *BIO_get_accept_port(BIO *b); BIO *BIO_new_accept(char *host_port); long BIO_set_nbio_accept(BIO *b, int n); long BIO_set_tfo_accept(BIO *b, int n); long BIO_set_accept_bios(BIO *b, char *bio); char *BIO_get_peer_name(BIO *b); char *BIO_get_peer_port(BIO *b); long BIO_get_accept_ip_family(BIO *b); long BIO_set_accept_ip_family(BIO *b, long family); long BIO_set_bind_mode(BIO *b, long mode); long BIO_get_bind_mode(BIO *b); int BIO_do_accept(BIO *b); BIO_s_accept() BIO . TCP/IP . BIOs TCP/IP BIO . BIO. BIO / . ( ) BIO . BIOs BIO_puts() BIO_gets(). BIO BIO. BIO_reset() BIO BIO . BIO_get_fd() BIO_set_fd() . BIO_s_fd(3) BIO_set_accept_name() name . "host:port" "host" "port" . "*" . IPv6 "[::1]:https". "port" BIO_set_conn_port() BIOs getservbyname() . BIO_set_accept_port() port BIO b. "port" BIO_set_conn_port() BIOs getservbyname() . 0 . BIO_sock_info() BIO_ADDR_service_string(3). BIO_new_accept() BIO_new() BIO_set_accept_name() : BIO host_port. BIO_set_nbio_accept() () n 0 n 1. BIO_set_tfo_accept() TCP Fast Open n 1 TCP Fast Open n 0 (). 1 BIO_SOCK_TFO BIO_set_bind_mode(). BIO_set_accept_bios() BIOs . BIO SSL . BIOs BIO . BIO_get_accept_ip_family() IP BIO b BIO_FAMILY_IPV4 BIO_FAMILY_IPV6 BIO_FAMILY_IPANY. BIO_set_accept_ip_family() IP family BIO b. BIO_FAMILY_IPANY. BIO_set_bind_mode() BIO_get_bind_mode() . BIO_BIND_NORMAL () . BIO_BIND_REUSEADDR . BIO_BIND_REUSEADDR_IF_UNUSED BIO_BIN_NORMAL BIO_BIND_REUSEADDR. BIO_SOCK_TFO TCP Fast Open. BIO_do_accept() . BIO . BIO_do_accept() . BIO /. BIO / BIO . BIO . accept->socket. / / . BIOs BIO_set_accept_bios() BIO accept->otherbios->socket. ( ) BIO . : connection = BIO_pop(accept); connection BIO accept BIO . accept BIO_free(). / BIO . BIO . BIO_pop() ( ) BIO . BIO_do_accept() BIO_should_io_special() BIO_RR_ACCEPT. : . BIO_set_accept_name(), BIO_get_accept_name(), BIO_set_accept_port(), BIO_get_accept_port(), BIO_set_nbio_accept(), BIO_set_accept_bios(), BIO_get_peer_name(), BIO_get_peer_port(), BIO_get_accept_ip_family(), BIO_set_accept_ip_family(), BIO_set_bind_mode(), BIO_get_bind_mode() BIO_do_accept() . BIO_do_accept(), BIO_set_accept_name(), BIO_set_accept_port(), BIO_set_nbio_accept(), BIO_set_accept_bios(), BIO_set_accept_ip_family(), BIO_set_bind_mode() 1 <= 0 . BIO_get_accept_name() NULL . BIO_get_peer_name() NULL . BIO_get_accept_port() NULL . BIO_get_peer_port() NULL . BIO_get_accept_ip_family() IP <= 0 . BIO_get_bind_mode() BIO_BIND <= 0 . BIO_new_accept() BIO NULL . 4444 . BIO *abio, *cbio, *cbio2; /* BIO_do_accept() BIO */ abio = BIO_new_accept("4444"); if (BIO_do_accept(abio) <= 0) { fprintf(stderr, " \n"); ERR_print_errors_fp(stderr); exit(1); } /* */ if (BIO_do_accept(abio) <= 0) { fprintf(stderr, " \n"); ERR_print_errors_fp(stderr); exit(1); } fprintf(stderr, " 1\n"); /* BIO */ cbio = BIO_pop(abio); BIO_puts(cbio, " 1: \n"); fprintf(stderr, " 1\n"); /* */ if (BIO_do_accept(abio) <= 0) { fprintf(stderr, " \n"); ERR_print_errors_fp(stderr); exit(1); } fprintf(stderr, " 2\n"); /* BIO */ cbio2 = BIO_pop(abio); BIO_free(abio); BIO_puts(cbio2, " 2: \n"); fprintf(stderr, " 2\n"); BIO_puts(cbio, " 1: \n"); /* */ BIO_free(cbio); BIO_free(cbio2); BIO_set_tfo_accept() OpenSSL 3.2. 2000-2022 OpenSSL. . Apache 2.0 ( ""). . LICENSE . 3 . . : . 3.6.2 7 2026 BIO_S_ACCEPT(3ssl)