よくわからない行動について質問があります。
私はc++コードの2つのバリエーションがあります:
CreateThread( NULL, 0, ( LPTHREAD_START_ROUTINE ) clientThread, ( LPVOID ) connectionSocket, 0, NULL );
スレッド:
Client a;
a.clientsocket = connectionSocket;
a.testText()
a.sendSocket();
正常に動作します(sendSocketはいくつかのテストデータをソケットに送信します)。
しかし、私がそうするなら
Client a;
a.clientsocket = connectionSocket;
CreateThread( NULL, 0, ( LPTHREAD_START_ROUTINE ) clientThread, ( LPVOID ) &a, 0, NULL );
スレッドを使用します:
a.testText();
a.sendSocket();
testText()のみが機能します。
それがなぜなのか、私は少し混乱しています。私はC++の趣味ですが:-)
編集:
Clientクラスを追加しました:
class Client
{
public:
SOCKET clientsocket;
Client()
{
}
~Client(){}
void displayMessage()
{
std::cout << "test message client class" << std::endl;
}
int sendSocket()
{
char *sendbuf = "CLIENT TEST";
send(clientsocket, sendbuf, (int)strlen(sendbuf),0);
closesocket(clientsocket);
return 0;
}
};