57 lines
2 KiB
MQL5
57 lines
2 KiB
MQL5
//+------------------------------------------------------------------+
|
|
//| SocketIsConnected.mq5 |
|
|
//| Copyright 2022, MetaQuotes Ltd. |
|
|
//| https://www.mql5.com |
|
|
//+------------------------------------------------------------------+
|
|
#property description "Connects to a server via sockets and shows socket state."
|
|
#property description "NB: Default 'Server' requires to allow 'www.mql5.com' in terminal settings - to use other servers, change the settings accordingly."
|
|
#property script_show_inputs
|
|
|
|
#include "..\..\Include\PRTF.mqh"
|
|
|
|
input string Server = "www.mql5.com";
|
|
input uint Port = 443;
|
|
|
|
//+------------------------------------------------------------------+
|
|
//| Script program start function |
|
|
//+------------------------------------------------------------------+
|
|
void OnStart()
|
|
{
|
|
PRTF(Server);
|
|
PRTF(Port);
|
|
const int socket = PRTF(SocketCreate());
|
|
if(PRTF(SocketConnect(socket, Server, Port, 5000)))
|
|
{
|
|
int i = 0;
|
|
while(PRTF(SocketIsConnected(socket)) && !IsStopped())
|
|
{
|
|
PRTF(SocketIsReadable(socket));
|
|
PRTF(SocketIsWritable(socket));
|
|
Sleep(1000);
|
|
if(++i >= 5)
|
|
{
|
|
PRTF(SocketClose(socket));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//+------------------------------------------------------------------+
|
|
/*
|
|
Example:
|
|
|
|
Server=www.mql5.com / ok
|
|
Port=443 / ok
|
|
SocketCreate()=1 / ok
|
|
SocketConnect(socket,Server,Port,5000)=true / ok
|
|
SocketIsConnected(socket)=true / ok
|
|
SocketIsReadable(socket)=0 / ok
|
|
SocketIsWritable(socket)=true / ok
|
|
SocketIsConnected(socket)=true / ok
|
|
SocketIsReadable(socket)=0 / ok
|
|
SocketIsWritable(socket)=true / ok
|
|
SocketClose(socket)=true / ok
|
|
SocketIsConnected(socket)=false / NETSOCKET_INVALIDHANDLE(5270)
|
|
|
|
*/
|
|
//+------------------------------------------------------------------+
|