mfcで2つのデータストリームを受け入れる方法は何ですか?
MFC内で2つのデータを受信する方法は、異なる方法で実現できます。以下はよく使用される2つの方法です:
- 異なる2つのソケットオブジェクトを使用してデータを受信する:異なるデータソースに接続するために2つのCSocketオブジェクトを作成し、それぞれ適切なReceive関数を使用してデータを受信します。
CSocket socket1, socket2;
socket1.Connect(server1);
socket2.Connect(server2);
char buffer1[1024];
char buffer2[1024];
socket1.Receive(buffer1, sizeof(buffer1));
socket2.Receive(buffer2, sizeof(buffer2));
- データを同時に受信するために複数スレッドを使用する:異なるデータソースからデータを受信するために2つの異なるスレッドを作成することができます。各スレッドでCSocketオブジェクトを作成し、そのスレッドで対応するReceive関数を使用してデータを受け取ります。
UINT ThreadFunc1(LPVOID pParam)
{
CSocket socket1;
socket1.Connect(server1);
char buffer1[1024];
socket1.Receive(buffer1, sizeof(buffer1));
return 0;
}
UINT ThreadFunc2(LPVOID pParam)
{
CSocket socket2;
socket2.Connect(server2);
char buffer2[1024];
socket2.Receive(buffer2, sizeof(buffer2));
return 0;
}
AfxBeginThread(ThreadFunc1, NULL);
AfxBeginThread(ThreadFunc2, NULL);
これらはよく使われる2つの方法ですが、具体的には要求や状況によります。複数のスレッドからデータを受信する場合は、スレッド間の同期とデータの処理に注意する必要があります。