作者:周笨笨真笨 | 来源:互联网 | 2023-09-08 08:38
我有简单的客户端/服务器应用程序。我正在使用线程。
这是我的线程示例。
void * thread2()
{
val1 = 6*a*a;
val2 = a*a*a;
printf("va1 = %f \n",va1);
printf("val2 = %f \n",val2);
}
这就是我在服务器中调用它的方式
// LEVEL 3
if(level == 3){
int status;
pthread_t tid1,tid2,tid3,tid4;
pthread_create(&tid1,NULL,thread1,NULL);
pthread_join(tid1,NULL);
pthread_create(&tid2,thread2,NULL);
pthread_join(tid2,NULL);
pthread_create(&tid3,thread3,NULL);
pthread_join(tid3,NULL);
pthread_create(&tid4,thread4,NULL);
pthread_join(tid4,NULL);
level = 4;
}
问题在于,所有内容都打印在服务器上而不是聊天中,我不知道如何在send()
函数中使用它
这是我的send()
函数的示例
s = send(newSocket,msg2,sizeof(msg2),0);
就像我如何将变量的输出保存在变量之类的东西中。感谢您的帮助。
您可以将参数传递给您正在调用的线程。如果需要传递多个参数,请使用一个包含所有参数的结构。如果您通过引用传递,则可以在线程完成之后将结果取回。
请参见this帖子,第一个答案。
您要传递的结构中应包含一个布尔值 execute ,这样,您就可以在主函数中检查线程是否已完全执行,因此您无需提取尚未设置的值。
,
如果我理解正确,那么您实际上想保存线程的输出,将其输出到“聊天”而不是您所说的“服务器”中。尝试简单地将stdout
修改为您正在谈论的聊天。检查dup
系列的重定向。