TheBlankBear1 2017-12-03 07:51 采纳率: 0%
浏览 805

线程 第一次创建返回11,已经在子线程·加了detach(贴一部分相关的,计算机网络实验)

while(true)
{
int ret = pthread_create(&t1,NULL,th,(void*)&listen1);
/*bind(listen1, (SOCKADDR )&myaddr, sizeof(myaddr));
listen(listen1, 5);
/

    if(ret!=0)
        {
        printf("create error:%d\n",ret);  
        exit(1);  
        } 
    pthread_cancel(t1);//等待线程退出
    }

    void* th(void *arg)

{
pthread_detach(pthread_self());
SOCKET acce ;

SOCKET listen1 = (SOCKET) arg;
SOCKADDR_IN friaddr1;

memset(&friaddr1, 0, sizeof(friaddr1));

int friaddr1Len = sizeof(friaddr1);

acce = accept(*listen1,(SOCKADDR *)&friaddr1, &friaddr1Len);

 char fmessage[100]={0};
 char textdata2[100]={0};
 recv(acce,fmessage, sizeof(fmessage), 0);
    printf("%s+3\n",fmessage);
 send(acce, textdata2, strlen(textdata2)+1, 0);
    printf("%s+4\n",textdata2);

pthread_exit(NULL);
return 0;
}

  • 写回答

1条回答 默认 最新

  • wanwan_1996 2017-12-04 00:49
    关注

    你确定pthread_cancel是等待线程退出吗? 那么pthread_join有事什么呢?既然以及进行了线程分离,为什么还要等待?

    评论

报告相同问题?

悬赏问题

  • ¥50 comsol稳态求解器 找不到解,奇异矩阵有1个空方程返回的解不收敛。没有返回所有参数步长;pid控制
  • ¥15 怎么让wx群机器人发送音乐
  • ¥15 fesafe材料库问题
  • ¥35 beats蓝牙耳机怎么查看日志
  • ¥15 Fluent齿轮搅油
  • ¥15 八爪鱼爬数据为什么自己停了
  • ¥15 交替优化波束形成和ris反射角使保密速率最大化
  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功