如何在SSL连接的服务器端接收数据?

如何在SSL连接的服务器端接收数据?,ssl,openssl,server,client,Ssl,Openssl,Server,Client,我正在尝试学习如何编写一个客户机/服务器应用程序,以便使用SSL在服务器之间传输文件。我在C++中主要使用了CURL和/或OpenSSL,但是我在服务器端遇到了困难。我有使用Perl和其他cgi-bin类型脚本的经验,但我还没有找到任何关于如何在服务器端实际接收数据的教程,只有关于证书和身份验证的教程。任何帮助都将不胜感激 您想使用BIO\u s\u accept()函数族来接受SSL上的连接(示例代码:)。您希望BIO\u set\u accept\u bios()为新连接使用相同的包装器,并

我正在尝试学习如何编写一个客户机/服务器应用程序,以便使用SSL在服务器之间传输文件。我在C++中主要使用了CURL和/或OpenSSL,但是我在服务器端遇到了困难。我有使用Perl和其他cgi-bin类型脚本的经验,但我还没有找到任何关于如何在服务器端实际接收数据的教程,只有关于证书和身份验证的教程。任何帮助都将不胜感激

您想使用
BIO\u s\u accept()
函数族来接受SSL上的连接(示例代码:)。您希望
BIO\u set\u accept\u bios()
为新连接使用相同的包装器,并希望
BIO\u set\u bind\u mode()
继续侦听同一端口上的更多连接

然后调用
connection=BIO_pop(accept)
获取表示每个连接的BIO,您可以将其用于输入和输出<代码>BIO_free()当您完成它时


编辑:对于实际应用,请使用
scp
而不是重新发明轮子。

我是否必须有一个程序然后在服务器上持续运行?我有一个网络托管帐户,我不知道如何设置。嗯,服务器必须在你连接到它时运行
xinetd
可以根据需要启动服务器进程。我可以在cgi-bin中设置一个脚本(比如Perl)来接受连接并让我的客户端调用它吗?此时,我应该提出通过加密连接将文件传输到Web服务器的方法实际上是
scp
。在正确配置的服务器上,防火墙将不允许您打开新端口。好的,我的服务器支持SSH,所以SCP/SSH应该是最简单的路由?