記事"MQLのソケットの使用およびシグナルプロバイダになる方法"についてのディスカッション - ページ 5

 
pavlick_:

そんな同期TCPクライアントを手に入れた:

μlにサーバーは必要ないので、クライアントだけでいい。表面的にテストしてみた。

ZЫЫ: 記事をありがとう。

コンパイルの段階で、構造体の変換に失敗します :-(.

'cannot cast Data_cz_char -> Data_cz_int ' とその逆。

以前は動作していたようですが。別の端末のアップデート 後に動かなくなったようだ。

何が問題なのだろう?

 
Dmitriy Strelnikov:

何が問題なんだ?

ユニオン
 
o_o:
ユニオン


ご回答ありがとうございます。しかし、質問はまだ関連しています。MQL4はユニオンをサポートしていません。少なくともドキュメントにはそう書かれています。

また、調査しているうちに、さらにいくつかの疑問が生じました:

- sendプロシージャとrecvプロシージャのint flagsパラメータ(最後の1つ)はどのような方法でもカバーされていません。私の場合、sendでは値-0をとり、recvでは-8をとります。

- 元の投稿では、クライアントは同期的であると書かれていますが、この例ではサーバーに文字列を送信するだけです。レスポンスについてはどうですか?.

馬鹿な質問ですみません。私はそれを理解しようとしていますが、私はまだそれを得ていません...あなたが私を助けることができるならば、お願いします。

私は多くのクライアントのサードパーティのサーバーとの相互作用のための作業クラスを実装したい。私はまだ立ち往生している、残念なことに。

 
Dmitriy Strelnikov:


返信ありがとう。しかし、まだ質問が残っています。MQL4はユニオンをサポートしていません。少なくともドキュメントにはそう書いてあります。

また、調査しているうちに、さらにいくつかの疑問が湧いてきました:

- sendプロシージャとrecvプロシージャでは、int flagsパラメータ(最後の1つ)はどのような方法でもカバーされていません。私の場合、sendでは値-0をとり、recvでは-8をとります。

- 元の投稿では、クライアントは同期的であると書かれていますが、この例ではサーバーに文字列を送信するだけです。レスポンスについてはどうですか?.

馬鹿な質問ですみません。私はそれを理解しようとしていますが、私はまだそれを得ていません...あなたが私を助けることができるならば、お願いします。

私は多くのクライアントのサードパーティのサーバーとの相互作用のための作業クラスを実装したい。私はまだ立ち往生している、残念なことに。

取引、自動取引システム、取引戦略のテストに関するフォーラム

MQL4言語におけるコードの変更

Alain Verleyen, 2017.05.18 22:10


彼らはユニオンを 導入しました(MT4では 文書化されていませんが、ME 1599ではうまく機能 します):

union Udata_32bytes 
  {
   uchar             d_uchar[32];
   ulong             d_ulong[4];
  }
data;

void OnStart()
  {
   data.d_ulong[0]=0xFFEEDDCC;
   
   printf("uchar[%i] = %X",1,data.d_uchar[1]);

  }

 
Alain Verleyen:


はい!組合は働く。ありがとう!2017年5月12日からユニオンの サポートが追加されたそうですね。素晴らしい!

開発者がドキュメントに反映させるのは良いことだ。

ユニオンを 使った簡単な例

//+------------------------------------------------------------------+
//| スクリプト番組開始機能|
//+------------------------------------------------------------------+

union AS {
   uint intN;
   uchar c[4];
} a;

void OnStart()
  {
//---
   a.intN = 555; 
   
   // uint - 4バイト 
   // uchar[4] - 各1バイトの4つの要素からなる配列。
   // 10進数で555、2進数4バイトで0000 0000 0010 1011となる。
   // それぞれ、これは4桁の10進数の配列である。 

   Alert(IntegerToString(a.intN) + 「バイト・バイト・バイト + IntegerToString(a.c[0]) + ", " + IntegerToString(a.c[1]) + ", " + IntegerToString(a.c[2]) + ", " + IntegerToString(a.c[3]));
  }
 
 
Dmitriy Strelnikov:

- sendプロシージャとrecvプロシージャでは、int flagsパラメータ(最後の1つ)は何もカバーされていない。sendでは値0を取るが、recvでは値8を取る。

flags=8なんて書いてないから。

- 元の投稿では、クライアントは同期的であり、サンプルはサーバーに文字列を送信することしか実装していない。レスポンスはどうなんだ?.

このような形式の質問では、ここで 取り上げるのがよいでしょう。
 
o_o:

なぜなら、あなたがそれを作り上げているからだ。 フラッグは見当たらないよ。

このような形式の質問は、ここで 取り上げるのがよいでしょう。


GURUさんへ!私は作り話をする習慣はありません。どうやら私の勘違いで、質問はpavlick_という ニックネームのユーザー宛で、彼によって実装されたTCP_Clientクラスに関するもので、上記のこのスレッド-https://www.mql5.com/ru/forum/91150/page3#comment_2798881。

お騒がせして申し訳ありませんでした。しかし、あなたからの反応がこれほど荒々しくなるとは思っていませんでした。

信じてほしいのだが、否定的な感情を抑えることが有効な場合もあるのだ。

Обсуждение статьи "Работа с сокетами в MQL, или Как стать провайдером сигналов"
Обсуждение статьи "Работа с сокетами в MQL, или Как стать провайдером сигналов"
  • 2016.09.08
  • www.mql5.com
Опубликована статья Работа с сокетами в MQL, или Как стать провайдером сигналов: Автор: o_O Версии библиотеки 1...
 

同上同質問!

 
MetaQuotes Software Corp.:

新しい記事「MQLでソケットを扱う、またはシグナルプロバイダーになるには」が掲載されました:

著者:o_O


このコードはMQL4で動作しますか?

MQLのStartServer 関数でDLLのbind() 関数を呼び出すと、以下のメッセージが表示されます:

2017.09.13 18:06:30.181 Server AUDCAD,H1: try bind...0.0.0.0:8081
2017.09.13 18:06:30.181 Access violation read to 0x00000012 in 'Ws2_32.dll'


 
Wemerson Guimaraes:

このコードはMQL4で動作しますか?

ソースはx64用にコンパイルされています。

すべてのポインタを32ビットに変更する必要があります。

例えば、SOCKET64の代わりにSOCKET32を使うなど。