开发者社区> 问答> 正文

与ECS服务器socket通信失败

ECS服务器为server2012,已经针对通信端口做了入站与出站规则设置
服务端代码:
{

   ZeroMemory((char *)&ServerAddress, sizeof(ServerAddress));
ServerAddress.sin_family = AF_INET;
// 这里可以绑定任何可用的IP地址,或者绑定一个指定的IP地址 
InetPton(AF_INET, _T("172.19.32.179"), &ServerAddress.sin_addr); //替代inet_addr
ServerAddress.sin_port = htons(m_nPort);
    bind(m_Socket, (struct sockaddr *) &ServerAddress, sizeof(ServerAddress));

}
绑定是成功的,

客户端代码:
{

   m_socket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

if (INVALID_SOCKET == m_socket)
{
    return false;
}

ZeroMemory((LPTCH )&target_addr, sizeof(target_addr));
target_addr.sin_family = AF_INET;
InetPton(AF_INET, _T("服务器外网IP"), &target_addr.sin_addr); //替代inet_addr
target_addr.sin_port = htons(targetPort);
   int connected = connect(m_socket, (const sockaddr*)&target_addr, sizeof(target_addr));
if (-1 != connected)
{
    return true; // 连接成功  
}

}
connect执行一段时间后返回-1,GetLastError()=0x27e4
查询错误代码,得到:“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 ”

展开
收起
快叫我吃饭 2017-09-30 02:53:18 3808 0
2 条回答
写回答
取消 提交回答
  • 绑定0.0.0.0 127.0.0.1 本地IP,都试过了,这三种方式在局域网通信都是正常的,所以我怀疑是阿里服务器设置的问题


    已解决,控制台添加安全组规则

    2019-07-17 21:37:27
    赞同 展开评论 打赏
  • 旺旺:nectar2。

    题主您好,

    服务端关于监听的地址,AF_INET 修改成 0.0.0.0 试试。

    2019-07-17 21:37:27
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载