首页新闻找找看学习计划

socket 中的select阻塞异常问题,请大家帮帮忙!

0
悬赏园豆:30 [待解决问题]

进城A和进程B之间为AF_UNIX本地通信

进程A:

  // ...连接到server端

  write(socket_client, ....); 成功

  read(socket_client, ...);失败

进程B:

  // pthread A 

  进程B accept 进程A后创建 pthread B

  // pthread B

  while(....) {

    // FD_...

    if(select(..+1, read, NULL, NULL, &t) < 0) {

        // .....

    }

    if(FD_ISSET(...)) {

      //...

    }

  }

背景:

进程A、B(pthread A)建立socket通信后,进程B创建pthread B监控进程A的套接字读写

问题:

建立连接后,没有读写时线程B阻塞在select,问题是当进程A已经write成功,但是线程B的select依旧阻塞。

Neo_Lc的主页 Neo_Lc | 初学一级 | 园豆:10
提问于:2015-12-20 13:52
< >
分享
所有回答(2)
-2

多线程处理

搁忆 | 园豆:600 (小虾三级) | 2015-12-21 10:49
0

1、检查进程A是否真的将数据写出了。

2、如果A进程确实写成功了,线程B select前、以及select函数参数等是否有误

 

乐享程序员 | 园豆:930 (小虾三级) | 2015-12-25 23:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册