开发者社区> 问答> 正文

与ECS服务器socket通信失败

快叫我吃饭 2017-09-30 02:53:18 1248

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
查询错误代码,得到:“由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 ”

弹性计算
分享到
取消 提交回答
全部回答(2)
  • 快叫我吃饭
    2019-07-17 21:37:27

    绑定0.0.0.0 127.0.0.1 本地IP,都试过了,这三种方式在局域网通信都是正常的,所以我怀疑是阿里服务器设置的问题


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

    0 0
  • dongshan8
    2019-07-17 21:37:27

    题主您好,

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

    0 0
添加回答
+ 订阅

时时分享云计算技术内容,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

推荐文章
相似问题