SocketTimeouts

Soket sistem nesnesi için veri alır ve göndermek için zaman aşımını ayarlar.

bool  SocketTimeouts(
   int           socket,               // soket
   uint          timeout_send_ms,      // veri gönderme zaman aşımı
   uint          timeout_receive_ms    // veri alma zaman aşımı
   );

Parametreler

socket

[in] SocketCreate fonksiyonu tarafından geri döndürülen soket tanıtıcı değeri. Yanlış bir tanıtıcı değeri iletildiğinde; hata 5270 (ERR_NETSOCKET_INVALIDHANDLE), _LastError'a yazılır.

timeout_send_ms

[in]  Milisaniye cinsinden veri gönderme zaman aşımı.

timeout_receive_ms

[in]  Milisaniye cinsinden veri alma zaman aşımı.

Geri dönüş değeri

Başarılı olursa true, aksi takdirde false olarak geri döner.

Not

SocketRead üzerinden veri okurken sistem nesnelerinin zaman aşımını ve ayarlanmış zaman aşımlarını karıştırmayın. SocketTimeout, işletim sistemindeki bir soket nesnesi için zaman aşımını bir kez ayarlar. Bu zaman aşımları, bu soket üzerinden veri okuma ve gönderme fonksiyonlarının tümüne uygulanacaktır. SocketRead'de zaman aşımı, belirli bir veri okuma işlemi için ayarlanmıştır.

Fonksiyon, yalnızca kendi yürütme iş parçacıklarında çalışan Uzman Danışmanlardan ve komut dosyalarından çağrılabilir. Bir göstergeden çağrılırsa; GetLastError(), 4014 hatasını geri döndürür - "Çağırma için fonksiyona izin verilmiyor".

Örnek:

//+------------------------------------------------------------------+
//|                                               SocketTimeouts.mq5 |
//|                                  Copyright 2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com
#property version     "1.00"
 
#define   TIMEOUT_SEND     5000
#define   TIMEOUT_RECEIVE  5000
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart(void)
  {
//--- bir soket oluştur ve tanıtıcısını al
   int socket=SocketCreate();
 
   if(socket==INVALID_HANDLE)
     {
      Print("SocketCreate() failed. Error ",GetLastError());
      return;
     }
//--- bir soket sistem nesnesi için veri alma ve gönderme zaman aşımlarını ayarla
   if(SocketTimeouts(socket,TIMEOUT_SEND,TIMEOUT_RECEIVE))
      PrintFormat("timeouts were successfully set",socket,TIMEOUT_SEND,TIMEOUT_RECEIVE);
   else
      PrintFormat("SocketTimeouts(%d, %I64d, %I64d) failed. Error %d",socket,TIMEOUT_SEND,TIMEOUT_RECEIVE,GetLastError());
//--- soketi kapat
   SocketClose(socket);
  }