EA作为客户端使用socket无法成功连接服务器的问题

 
我正在开发一个EA,其中需要使用到Socket通信。目前服务器是我用C#开发的一个桌面应用,客户端就是我现在这个EA,并且服务器和客户端都在同一台电脑上。服务器端的socket通信没有问题,已经通过另外一个客户端验证过了,可以成功连接。EA中可以成功调用SocketCreate函数,并返回有效的socket句柄,这个是用判断验证的。
现在的问题是后续调用SocketConnect函数时,会立即返回false,获取的错误码是4014。查阅文档说4014表示socket只能在EA或者脚本中执行,指标中执行就会有这个错误号,但是我可以确认我的是EA,因为是使用EA模板创建的。所以现在不知道如何来解决这个问题,特在此发帖求助。下面是我的源代码:


 bool InitSocket() 
{
    int SocketHandle = SocketCreate();
    if (SocketHandle == INVALID_HANDLE) 
        return false;

    // 这里立即返回false
    if (!SocketConnect(SocketHandle, SERVER_IP, SERVER_PORT, 3000)) 
    {
    // 这里获得的错误号是4014
        int a = GetLastError();
        SocketClose(SocketHandle);
        return false;
    }

    return true;
} 
 
【新手必看】如何防止机器人误判:讨论代码时请使用代码表述功能
【新手必看】如何防止机器人误判:讨论代码时请使用代码表述功能
  • 2023.06.13
  • www.mql5.com
大家好,我是官网版主。 官网内部有机器人辅助管理,目的是自动下架一些有误导性的内容。 内容过长,或同一个IP多次注册,容易导致机器人误判,而被无辜删帖。 如果您被无故删帖,我们对这种体验感到万分抱歉。 为了防止机器人误判,请在讨论代码的时候使用代码表述功能...