求教,ACE 下使用 SSL 的程序,客户端无法连接

layershow 2008-12-05 12:41:43
服务器端:基于 ACE 开发的 SSL Server 程序
程序运行,SSL 端口已打开监听

客户端连接的时候发送 ClientHello 之后,服务器直接 reset TCP 连接
请有经验的专家指点一下可能是哪方面的问题?
...全文
168 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
caixin99 2009-06-15
  • 打赏
  • 举报
回复
up
netelife 2009-06-02
  • 打赏
  • 举报
回复

#include "ace/INET_Addr.h"
#include "ace/Log_Msg.h"
#include "ace/Singleton.h"
#include "ace/Null_Mutex.h"

#include "ace/SSL/SSL_SOCK_Connector.h"
#include <ace/SSL/SSl_Sock_Stream.h>


#ifdef _DEBUG
#pragma comment(lib, "ACEd.lib")
#pragma comment(lib, "ACE_SSLd.lib")
#else
#pragma comment(lib, "ACE.lib")
#pragma comment(lib, "ACE_SSL.lib")
#endif

#define TEST_GET_BUFFER "GET / HTTP/1.1\r\nHost: www.paypal.com\r\nUser-Agent: TestSSL-Agent0.1\r\n\r\n"

class Options
{
public:

int oneway_client_test(void);
void run(void);
};

typedef ACE_Singleton<Options, ACE_Null_Mutex> OPTIONS;

int
Options::oneway_client_test (void)
{
ACE_SSL_SOCK_Stream cli_stream;
ACE_INET_Addr remote_addr (443, "www.paypal.com");

ACE_SSL_SOCK_Connector con;

if (con.connect (cli_stream,
remote_addr) == -1)
ACE_ERROR_RETURN ((LM_ERROR,
ACE_TEXT ("(%P|%t) %p\n"),
ACE_TEXT ("connection failed")),
-1);
else
ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) connected to %C at port %d\n"),
remote_addr.get_host_name (),
remote_addr.get_port_number ()));

ACE_DEBUG ((LM_DEBUG,
ACE_TEXT ("(%P|%t) waiting...\n")));

// send the get request..
if ( cli_stream.send_n(TEST_GET_BUFFER, ACE_OS::strlen(TEST_GET_BUFFER)) == -1 )
{
ACE_ERROR(( LM_ERROR,
ACE_TEXT("(%P|%t) %p\n)"),
ACE_TEXT("send_n")));
cli_stream.close();
return -1;
}

char buf[4096];
ACE_INT32 len;
while ( true )
{
if ( (len = cli_stream.recv(buf, sizeof(buf) - 1)) == -1 )
{
ACE_ERROR(( LM_ERROR,
ACE_TEXT("(%P|%t) %p\n)"),
ACE_TEXT("recv_n")));
break;
}

if ( len == 0 )
break;

buf[len] = 0;

ACE_DEBUG(( LM_DEBUG, "%s", buf ));
}

// Close the connection.
cli_stream.close ();

return 0;
}


void
Options::run (void)
{
this->oneway_client_test ();
}

static int
run_client (void)
{
// Raise the socket handle limit to the maximum.
ACE::set_handle_limit ();

OPTIONS::instance ()->run ();

return 0;
}

int
ACE_TMAIN (int argc, ACE_TCHAR *argv[])
{
// Initialize the logger.
ACE_LOG_MSG->open (argv[0]);

//if (OPTIONS::instance ()->parse_args (argc, argv) == -1)
// return -1;

// Run the client
run_client ();

return 0;
}
DreamFreeLancer 2009-06-01
  • 打赏
  • 举报
回复
本博主正在进行一个开源的通信平台项目,有兴趣的请关注,
项目源码:https://fy2009.googlecode.com/svn/trunk/ fy2009
相关博克:http://blog.csdn.net/dreamfreelancer
member 2009-05-30
  • 打赏
  • 举报
回复
楼主 我想跟你学ACE
344296735
agui1226 2009-05-20
  • 打赏
  • 举报
回复
不知,帮忙up一下~
ACE有支持ssh的类吗?
CPPACE 2009-05-08
  • 打赏
  • 举报
回复
ssl
while(recv()!=-1)
{}
hanbaocheng 2009-05-08
  • 打赏
  • 举报
回复
熟悉ACE_SSL的大大们帮帮忙阿,十万火急阿
hanbaocheng 2009-05-06
  • 打赏
  • 举报
回复
我也有同样的问题,请问大大们是怎么解决的?
hylizj 2009-01-08
  • 打赏
  • 举报
回复
请检查一下协议是否正确?
layershow 2008-12-05
  • 打赏
  • 举报
回复
ACE 封装的是 openssl
星羽 2008-12-05
  • 打赏
  • 举报
回复
up
hhyttppd 2008-12-05
  • 打赏
  • 举报
回复
进来学习
xhs_lh04 2008-12-05
  • 打赏
  • 举报
回复
选择的是验证对方证书模式?还是不验证
服务端证书及私钥是否载入了?
单单这一个问题可能会有多种原因,你先把问题定位一下,缩小点范围才好帮你啊

24,860

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧