我对我不太了解的行为有疑问:
我有两种 C++ 代码变体:
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++ 的爱好者 :-)
编辑:
添加了客户端类:
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;
}
};