ACE 建立连接失败

sunshine757961368 2014-03-05 04:26:54
用ACE建立两个主机的连接,server端绑定端口成功之后,无法建立于客户端的连接
client端也是无法建立与主机的连接,具体不知道是什么原因,我是写了一个工程,一个线程为server功能,监听端口,接受消息,一个线程为client功能,发送消息
代码如下:
server 线程


ACE::init();
ACE_INET_Addr port_to_listen(10000,"localhost");//绑定端口号,ip
ACE_SOCK_Acceptor acceptor;
if(acceptor.open(port_to_listen,1)!=0)
{
//cout<<"band port failed!"<<endl;
dlg->MessageBox(_T("band port failed!"),_T("band tip"));
ExitThread(1);
//return -1;
}
else
{
dlg->MessageBox(_T("band port success!"),_T("band tip"));
ACE_SOCK_Stream str_rev;
ACE_Time_Value timeout(10,0);
if(acceptor.accept(str_rev)!=-1)(程序运行到这里,没动静了,不显示失败,也不显示成功)
{
dlg->MessageBox(_T("client connect!"),_T("connect tip"));
}
else
{
dlg->MessageBox(_T("client connect failed!"),_T("connect tip"));
}
}
ACE_Thread_Manager::instance ()->cancel_all ();
ACE_Time_Value timeout(30);
ACE_Thread_Manager::instance()->wait(&timeout);
ACE::fini();


client 部分:

ACE::init();
ACE_INET_Addr addr(3000,"192.168.1.135"); //需连接对方服务器的ip
ACE_SOCK_Connector connector;
ACE_Time_Value timeout(10,0);
ACE_SOCK_Stream str_send;
if(connector.connect(str_send,addr,&timeout)!=0)
{
MessageBox("connection failed!","connection tip");(这部分直接显示失败)
}
else
{
MessageBox("connection success!","connection tip");
}
ACE::fini();



求大神们指教。网络没问题,不理解问题在哪里。新手分不多,望谅解。
...全文
393 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunshine757961368 2014-03-07
  • 打赏
  • 举报
回复
引用 11 楼 oyljerry 的回复:
[quote=引用 9 楼 sunshine757961368 的回复:] [quote=引用 7 楼 VisualEleven 的回复:] [quote=引用 6 楼 sunshine757961368 的回复:] [quote=引用 4 楼 VisualEleven 的回复:] connect失败的原因是什么?WSAGetLastError() ???
如果本地连接成功了,是不是意味着代码本身没有问题?? 那我现在就是要先解决,server监听的问题了吗?我单步调试的,程序跳到accept那步就不走了,也就是它没有任何返回值。。。不理解,为什么[/quote] 为啥不理解,因为没有客户端connect去连接它,所以它就阻塞在那里~[/quote] 哦,对了,我是一个工程里面两个线程,一个是server,一个client,设计时先点个按钮,server开始监听,然后再点连接,client线程开始连接,这样的先后顺序,会影响吗?[/quote] 客户端连接后返回什么[/quote] 昨天经过努力,现在两边都显示连接成功了,但是,client这边发送消息过去,返回显示发送成功了,可是server线程好像跟没接收一样,无反应。。。
sunshine757961368 2014-03-07
  • 打赏
  • 举报
回复
客户端连接后返回什么[/quote] 昨天经过努力,现在两边都显示连接成功了,但是,client这边发送消息过去,返回显示发送成功了,可是server线程好像跟没接收一样,无反应。。。
oyljerry 2014-03-07
  • 打赏
  • 举报
回复
引用 9 楼 sunshine757961368 的回复:
[quote=引用 7 楼 VisualEleven 的回复:] [quote=引用 6 楼 sunshine757961368 的回复:] [quote=引用 4 楼 VisualEleven 的回复:] connect失败的原因是什么?WSAGetLastError() ???
如果本地连接成功了,是不是意味着代码本身没有问题?? 那我现在就是要先解决,server监听的问题了吗?我单步调试的,程序跳到accept那步就不走了,也就是它没有任何返回值。。。不理解,为什么[/quote] 为啥不理解,因为没有客户端connect去连接它,所以它就阻塞在那里~[/quote] 哦,对了,我是一个工程里面两个线程,一个是server,一个client,设计时先点个按钮,server开始监听,然后再点连接,client线程开始连接,这样的先后顺序,会影响吗?[/quote] 客户端连接后返回什么
wukonggaoxing 2014-03-06
  • 打赏
  • 举报
回复
sunshine757961368 2014-03-06
  • 打赏
  • 举报
回复
引用 7 楼 VisualEleven 的回复:
[quote=引用 6 楼 sunshine757961368 的回复:] [quote=引用 4 楼 VisualEleven 的回复:] connect失败的原因是什么?WSAGetLastError() ???
如果本地连接成功了,是不是意味着代码本身没有问题?? 那我现在就是要先解决,server监听的问题了吗?我单步调试的,程序跳到accept那步就不走了,也就是它没有任何返回值。。。不理解,为什么[/quote] 为啥不理解,因为没有客户端connect去连接它,所以它就阻塞在那里~[/quote] 哦,对了,我是一个工程里面两个线程,一个是server,一个client,设计时先点个按钮,server开始监听,然后再点连接,client线程开始连接,这样的先后顺序,会影响吗?
sunshine757961368 2014-03-06
  • 打赏
  • 举报
回复
引用 7 楼 VisualEleven 的回复:
[quote=引用 6 楼 sunshine757961368 的回复:]
[quote=引用 4 楼 VisualEleven 的回复:]
connect失败的原因是什么?WSAGetLastError() ???

如果本地连接成功了,是不是意味着代码本身没有问题??
那我现在就是要先解决,server监听的问题了吗?我单步调试的,程序跳到accept那步就不走了,也就是它没有任何返回值。。。不理解,为什么[/quote]
为啥不理解,因为没有客户端connect去连接它,所以它就阻塞在那里~[/quote]
可是我本地不是连接了么。而且显示连接成功了啊。
Eleven 2014-03-06
  • 打赏
  • 举报
回复
引用 6 楼 sunshine757961368 的回复:
[quote=引用 4 楼 VisualEleven 的回复:] connect失败的原因是什么?WSAGetLastError() ???
如果本地连接成功了,是不是意味着代码本身没有问题?? 那我现在就是要先解决,server监听的问题了吗?我单步调试的,程序跳到accept那步就不走了,也就是它没有任何返回值。。。不理解,为什么[/quote] 为啥不理解,因为没有客户端connect去连接它,所以它就阻塞在那里~
sunshine757961368 2014-03-06
  • 打赏
  • 举报
回复
引用 4 楼 VisualEleven 的回复:
connect失败的原因是什么?WSAGetLastError() ???

如果本地连接成功了,是不是意味着代码本身没有问题??
那我现在就是要先解决,server监听的问题了吗?我单步调试的,程序跳到accept那步就不走了,也就是它没有任何返回值。不理解,为什么
sunshine757961368 2014-03-06
  • 打赏
  • 举报
回复
引用 4 楼 VisualEleven 的回复:
connect失败的原因是什么?WSAGetLastError() ?

我try catch了一下,但是找不到error,然后 我把ip改成,localhost,连我本机,就成功了。
Eleven 2014-03-06
  • 打赏
  • 举报
回复
connect失败的原因是什么?WSAGetLastError()?
sunshine757961368 2014-03-06
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
查看一下啊连接错误信息等
亲,我的acceptor.accept 无反应,没有返回值,你还懂是怎么个情况啊?
sunshine757961368 2014-03-06
  • 打赏
  • 举报
回复
引用 1 楼 oyljerry 的回复:
查看一下啊连接错误信息等
网络ping了一下,是没有问题的,但是用telnet指定3000端口,显示无法连接, 我现在在试着用ACE_ERROR输出连接的错误信息
oyljerry 2014-03-05
  • 打赏
  • 举报
回复
查看一下啊连接错误信息等

18,363

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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