2010-11-12 31 views
2

我正在用OpenSSL API編寫服務器。我想重用已經在使用的端口。如何在OpenSSL API中重用綁定的端口?

我可以通過調用

setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes)); 

套接字編程這樣做,我打電話

bind(sockfd, ...); 

但如何重用端口OpenSSL的編程過嗎?

我用

bio = BIO_new_ssl(ctx, 0); 
BIO_get_ssl(bio, &ssl); 
SSL_set_mode(ssl, SSL_MODE_AUTO_RETRY); 
abio = BIO_new_accept(server_port); 
BIO_set_accept_bios(abio, bio); 
BIO_do_accept(abio) 

設置我的OpenSSL的服務器連接。

是否有任何功能如setsockopt()可以使BIO *重用端口?

謝謝!

回答

3

您可以使用BIO_set_bind_mode

BIO_set_bind_mode(abio, BIO_BIND_REUSEADDR); 
+0

要我打電話BIO_new_accept前BIO_set_bind_mode()()? – Celebi 2010-11-12 15:07:06

+0

@Celebi:你不能,因爲你必須在由'BIO_new_accept()'創建的接受'BIO'上調用它。您可以在創建接受'BIO'和第一個'BIO_do_accept()'調用之間隨時調用它。 – caf 2010-11-12 22:43:40

相關問題