通过ACE_SOCK_Acceptor接受连接
Accepting a connection with ACE_SOCK_Acceptor
我刚开始学习ACE。我尝试了一些简单的例子,遇到了一个问题。这是我的代码:
int _tmain(int argc, _TCHAR* argv[])
{
ACE_INET_Addr server_addr;
ACE_SOCK_Acceptor acceptor;
ACE_SOCK_Stream stream;
if(server_addr.set(8888) == -1) return 1;
if(acceptor.open(server_addr, 1) == -1) return 1;
....
}
当我调用acceptor.open(...)
时它总是返回-1。我对网络编程有点陌生。据我所知,代码没有任何问题。我在一台有Wi-fi的笔记本电脑上编程,这有什么区别吗?我还打开了防火墙。(试着关掉它,没有区别)。
这是服务器端程序。我必须对我的电脑进行某种配置吗?
供您参考,这里是您可以在网上找到的教程列表。我建议使用反应器框架,一个例子是在$ACE_ROOTexamplesReactorTP_Reactor
但是回到你的问题,你不需要使用set(),而只需使用构造函数:
#include <ace/ACE.h>
#include <ace/SOCK_Acceptor.h>
#include <ace/INET_Addr.h>
#include <ace/Log_Msg.h>
int main(int argc, char *argv[])
{
ACE_SOCK_Acceptor acceptor;
ACE_INET_Addr server_addr(8888);
// open a port using the acceptor; reuse the address later
if (acceptor.open(server_addr, 1) == -1)
{
ACE_ERROR_RETURN((LM_ERROR, ACE_TEXT("%N:%l: Failed to open ")
ACE_TEXT ("listening socket. (errno = %i: %m)n"), ACE_ERRNO_GET), -1);
}
// ...
return 0;
}
相关文章:
- 当套接字连接断开时检测C/C++Unix
- 无法在windows上使用mingw将sqlite3与c连接
- 到连接组件算法的问题(递归)
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- 无法在C++中建立与MySQL数据库的连接
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- 使用 bfs 解决连接组件问题时得到错误的答案
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 如何修复valgrind启动时的致命错误(与libc6-dbg和libc6-dbg:i386连接)
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- OSX蓝牙打开RFCOMMChannelAsync声称已连接,但未建立连接,并且从未调用过委托
- 在 libcurl 连接池中预创建连接
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- libcurl 和 DNS ttl 中的内部连接管理
- 如何应用 libcurl 的持久连接选项
- 提升 ASIO - io_service 不要等待连接到线程
- WinSock2:connect() 提供"连接被拒绝"
- 升压信号2将插槽传递到成员功能以断开连接